【发布时间】:2015-02-09 00:08:36
【问题描述】:
我知道这个问题已经被问过很多次了,但我对 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);
嵌套猫鼬填充:如何在 Appointments.find() 上实现嵌套猫鼬填充,以使 Appointments.find().populate('doctorids') 填充医生数组并且Doctors数组反过来应该填充每个Doctor指向的用户。根据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]
【问题讨论】:
标签: node.js mongodb sorting mongoose mongoose-populate