私は独自のIDでサブ文書を選択する方法を知らない
expressjsを作成しようとしました。 "localhost:3000/api/parent /:parent_id/child/:child_id "公式のMoogose文書はhereであり、コードはvar doc = parent.children.id(id);
ですが、コンソールにはCannot read property 'id' of undefined
またはnull
が返されます。
は、ここにコード mongoose:idでサブ文書を選択する方法
var express = require('express');
var app = express();
var mongoose=require('mongoose');
mongoose.connect('mongodb://localhost/parent');
var ChildSchema=new mongoose.Schema({
name:String
},{collection:"child"});
var ParentSchema=new mongoose.Schema({
name:String,
child:[ChildSchema]
},{collection:"parent"});
var Parent = mongoose.model('Parent', ParentSchema);
//
// var parentA=new Parent({name:"A 123",child:[{name:"A 1"},{name:"A 2"},{name:"A 3"}]});
// var parentB=new Parent({name:"B 123",child:[{name:"B 1"},{name:"B 2"},{name:"B 3"}]});
// var parentC=new Parent({name:"C 123",child:[{name:"C 1"},{name:"C 2"},{name:"C 3"}]});
// parentA.save();
// parentB.save();
// parentC.save();
app.get('/api/parent', function(req, res){
Parent.find(function(err,data){
res.json(data);
});
});
app.get('/api/parent/:parent_id/child/:child_id', function(req, res){
console.log(req.params.child_id);
/*problem here!!!!!*/
var doc = Parent.child.id(req.params.child_id);
console.log(doc);
});
app.listen(3000,console.log("localhost:3000"));
Thanks、私はChildSchemaの '{collection:"子 "}"を削除した後もconsole.logにput: "TypeError:未定義の 'id'プロパティを読み取ることができません。 // localhost:3000/api/parent/57fe6e26d0505e1974ac0b68/child/57fe6e26d0505e1974ac0b6b "これはIDがObjectIdでなければならないためですか? – Yadi