Mongoose:填充嵌套模式

这是关于Mongoose嵌套填充方法。 我试图使用填充方法来获取文档填充,但仍然有一个问题。

var userSchema = Schema({ email: {type: String,required: true,unique: true}, fullName: String, meetings: [{ type: Schema.Types.ObjectId, ref: 'Meeting' }] }); userSchema.statics.findById = function (id, callback) { this.findOne({ _id: id }).populate({ path: 'meetings', select: '_creator topic attendees' }).populate({ path: 'meetings.attendees', model: Attendee }) .exec(callback); }; var meetingSchema = Schema({ _creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, topic: String, attendees: [attendeeSchema] }); var attendeeSchema = Schema({ _id: false, attendee: {type: String,required: true,ref: 'User'} }) var Meeting = mongoose.model('Meeting', meetingSchema); var User = mongoose.model('User', userSchema); var Attendee = mongoose.model('Attendee', attendeeSchema); 

我想最终得到一个用户的结果与会议的嵌套与会者解决

 { "_id": "53e87d7bc4088daefc3d5adc", "email": "david@email.com", "fullName": "david", "lastModifiedDate": "2014-08-11T08:23:23.359Z", "meetings": [{ "_id": "53e8abf8dd1662000041af5d", "topic": "Linkedin", "_creator": "53e89187cbed0f0000c534b1", "meetingdate": "12/12/2014", "attendees": [{ "email": "david@email.com", "fullName": "david", "_id": "53e87d7bc4088daefc3d5adc", }, { "email": "john@email.com", "fullName": "john", "_id": "53e87d7bc4088daefc3dbaua", }] }], } 

任何想法我在哪里出错填充查询。

我甚至试过这个,但是现在最后的回应本身并不起作用。

 User.findById(userid, function (err, doc) { if (err) {return res.send(err);} Meeting.populate(doc.meetings, { path: 'attendees' }, function (err, response) { if (err) {return res.send(err);} res.send(response); } ); }) 

这是嵌套人口的正确方法

 User.findById(userid, function (err, doc) { if (err) {return res.send(err);} User.populate(doc, { path: 'Meeting' }, function (err, response) { if (err) {return res.send(err);} res.send(response); } ); }) 

你可以咨询mongoose文鼬人口