我已经搜索过高低,但无法弄清楚如何形成以下填充查询,首先是我的模型:
const CourseSchema = new Schema({
classes: [{ type: Schema.Types.ObjectId, ref: 'Classroom' }]
});
const ClassSchema = new Schema({
location: { type: mongoose.Schema.Types.ObjectId, ref: 'Location' },
instructors: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
});
我有一个获得单一课程的端点,但我想填充classes
字段以及location
中的instructors
和classes
字段。现在,我可以填充classes
或location
中的教师字段,但我无法同时填充这两个字段。这就是我现在所拥有的:
Course
.findById(req.params.courseId)
.populate({
path: 'classes',
populate: {
path: 'instructors',
model: 'User'
}
})
如何填充location
中的classes
字段?
感谢。
答案 0 :(得分:39)
兴趣替代方案是将数组传递给嵌套的填充。
Course
.findById(req.params.courseId)
.populate({
path: 'classes',
model: 'Classroom',
populate: [{
path: 'instructors',
model: 'User'
},
{
path: 'location',
model: 'Location'
}]
})
答案 1 :(得分:5)
请在mongoose v4下试试这个,这是关于Population
的一个很好的链接
Course
.findById(req.params.courseId)
.populate({
path: 'classes',
model: 'Classroom',
populate: {
path: 'instructors',
model: 'User'
}
})
.exec(function(err, cour) {
if (err)
console.log(err);
else {
Course.populate(cour,
{
path: 'classes.location',
model: 'Location',
}, function(err, c1) {
if (err)
console.log(err);
else
console.log(util.inspect(c1, { showHidden: true, depth: null }));
})
}
})
答案 2 :(得分:2)
- (NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskAllButUpsideDown);
//OR return (UIInterfaceOrientationMaskAll);
}