我知道这个问题已经被问过很多次了,但我对 mongodb/mongoose 有点陌生!目前我正在为医疗软件开发 MEAN 堆栈。以下是我的架构:
var usersSchema = new Schema({
_id : {type : mongoose.Schema.ObjectId}
//...
});
mongoose.model('Users', usersSchema);
var doctorsSchema = new Schema({
_id : {type : mongoose.Schema.ObjectId},
userid : {type : mongoose.Schema.ObjectId, ref : 'Users' },
//...
});
mongoose.model('Doctors', doctorsSchema);
var appointmentsSchema = new Schema({
_id : {type : mongoose.Schema.ObjectId},
doctorids : [ {type : mongoose.Schema.ObjectId, ref : 'Doctors'} ]
//...
});
mongoose.model('Appointments', appointmentsSchema);
Nested Mongoose Populate:如何在 Appointments.find() 上实现嵌套的猫鼬填充,Appointments.find().populate('doctorids') 应该填充 Doctors 数组,而 Doctors 数组反过来应该填充每个医生指向的用户。根据https://github.com/LearnBoost/mongoose/wiki/3.6-Release-Notes#population他们添加了 Model.Populate!所以我尝试了这个,但它没有填充医生ID中的用户
Appointments
.find({})
.populate('doctorids') // This is working
.exec(function (err, doc) {
if (err) {
handleError(err);
return;
}
Doctors //**Shouldn't this populate the doctors Users inside Doctors?**
.populate(doc, {path: 'doctorids.userid'}, function(err, doc) {
});
res.json({
appointments: doc //Appointsments.Doctorids[].Userid is NOT populated
});
});
[已编辑:将其他问题移至新帖子 @ https://stackoverflow.com/questions/27412928/mongoose-nested-populate-sort-search-referenced-attributes ]