У меня есть схема, как это для семьи (дети которых учатся в школе) ...Mongoose схемы для массива поддокументов идентификаторов из другой коллекции
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 */ ]
}]
});
Как узнать, мангусту, что я хочу массив объектов идентификаторов для студентов найти в другой коллекции?
Я понимаю from this answer, что, если бы я хотел классные комнаты, чтобы обратиться к семейным документам, я мог бы сказать что-то вроде:
families: { type : ObjectId, ref: 'Family' }
но как сделать то же самое для подразделам -documents другой коллекции? (Если это не очевидно, я просто изучаю как манго, так и мангуста).
Отличный ответ. Огромное спасибо. – user1272965
Эй, извините за продолжение: Я следую примеру, где у меня есть один файл на модель, и каждый файл модели говорит 'module.exports = mongoose.model ('Model', ModelSchema);' в конце. Итак, в моей family.js можно ли просто называть 'mongoose.model ('Student' ...' на ученике и отбрасывать результат (так что я все еще могу экспортировать семейную модель)? И, в моем school.js, Я хочу, чтобы любые другие файлы модели использовали синтаксис, который вы предлагаете? – user1272965
@ user1272965, в каждом файле модели вы можете использовать 'mongoose.model ('Model', ModelSchema);', если вы хотите использовать этот файл модели в другом файле , вы должны использовать 'var School = mongoose.model ('School');', тогда эту «школу» можно было бы использовать в этом файле ... Надеюсь, что я буду ясно. – zangw