Javascript Mongoose-在数组中填充对象
使用mongoose如何在数组中填充单个对象 例如:Javascript Mongoose-在数组中填充对象,javascript,node.js,mongodb,mongoose,mongoose-populate,Javascript,Node.js,Mongodb,Mongoose,Mongoose Populate,使用mongoose如何在数组中填充单个对象 例如: var SchoolSchema = new Schema({ classes: [{ name: String }] }); var StudentSchema = new Schema({ allocated_class: { type: ObjectId, ref: 'School' } }); mongoose.model('School', SchoolSchema); mongoose.mo
var SchoolSchema = new Schema({
classes: [{
name: String
}]
});
var StudentSchema = new Schema({
allocated_class: {
type: ObjectId,
ref: 'School'
}
});
mongoose.model('School', SchoolSchema);
mongoose.model('Student', StudentSchema);
Student.find({}).populate("allocated_class").exec();
在上面的示例中,如何在查找所有学生时填充一个类的名称
示例数据:
学生
{
"allocated_class" : ObjectId("561e36540fc3c18b749d65e1"),
}
学校
{
"_id" : ObjectId("561e36320fc3c18b749d65e0"),
"classes" : [
{
"name" : "Class 1",
"_id" : ObjectId("561e36540fc3c18b749d65e1")
}]
}
最终结果应该是学生集合中填充了他们分配的班级名称。试试这个
var StudentSchema = new Schema({
name:{type: String, unique: true},
allocated_class: [schoolSchema]
});
即使不是这样,也应该在模式中进行更改。
一所学校有许多班级,一个学生有许多班级,因此(新)班级模式可能是学校和学生之间的联系 您能否将问题包含在示例数据和预期结果中?您的
学校
ref被命名为类
,而学校
包含类
,这令人困惑。我的编辑是否提供了任何澄清?谢谢。Population只适用于顶级文档,如学校
,而不适用于子文档,如类的元素
。是否有其他方法可以使其工作?也许改变模式?