Я знаю, что этот вопрос задан много раз, но я вроде как новый для mongodb/mongoose! В настоящее время я работаю над стеком MEAN для медицинского программного обеспечения. Ниже моя схема:Mongoose inested/deep populate
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);
Уплотненного Mongoose Populate:. Как осуществить вложенный мангуст заселить на Appointments.find() таким образом, что Appointments.find() заселить ('doctorids') следует заполнить массив докторов, а массив врачей, в свою очередь, должен заполнить пользователей, на которые указывает каждый Доктор. По https://github.com/LearnBoost/mongoose/wiki/3.6-Release-Notes#population они добавили Model.Populate! Так что я попытался это, но его не заселять пользователей внутри doctorids
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]
Возможно ли 3-го уровня населения с глубиной населения? –
@AralRoca да, любой уровень глубины. –