繁体   English   中英

来自不同集合的子文档ID数组的猫鼬模式

[英]Mongoose schema for array of sub-documents ids from a different collection

我有一个这样的家庭模式(孩子在学校读书)...

var familySchema = new Schema({
    parents: [{
        firstName: String,
        lastName: String,
        email: String,
    }],
    students: [{
        firstName: String,
        lastName: String,
        grade: Number,
    }]
});

我想描述许多有教室的学校,并且教室里有学生,像这样...

var schoolSchema = new Schema({
    name: String,
    street: String,
    classrooms: [{
        classroomNumber: Number,
        students: [ /* I am mixed up here */ ]
    }]
});

我如何告诉猫鼬,我想要其他集合中找到的学生的对象ID数组?

从这个答案中了解到,如果我想让教室参考家庭文件,我可以这样说:

families: { type : ObjectId, ref: 'Family' }

但是如何对另一个集合的文档执行相同的操作? (如果不是很明显,我将同时学习mongo和mongoose)。

如果要使用子文档引用 ,则需要将引用更改为'student'数组。

var studentSchema = new Schema({
    firstName: String,
    lastName: String,
    grade: Number,
});

var familySchema = new Schema({
    parents: [{
        firstName: String,
        lastName: String,
        email: String,
    }],
    students: [studentSchema]
});

var schoolSchema = new Schema({
    name: String,
    street: String,
    classrooms: [{
        classroomNumber: Number,
        students: [ { type: ObjectId, ref: 'Family.students' }]
    }]
});

var Student = mongoose.model('Student', studentSchema );  
var Family = mongoose.model('Family ', familySchema ); 
var School = mongoose.model('School', schoolSchema );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM