У меня есть модель документа с именем школа , которая в свою очередь имеет два поддокумента:
- студенты
- класс
Каждый ученик принадлежит к одному классу.
var classSchema = new Schema({
name: {type : String}
});
var studentSchema = new Schema({
name : {type : String, required:true},
class: { type: ObjectId, ref: 'Institute.classes' },
});
var schoolSchema = new Schema({
name : {type : String, required:true},
students : [studentSchema],
classes : [classSchema]
});
var School = mongoose.model('School', schoolSchema);
Теперь, когда я беру ученика, я тоже хочу заполнить класс. Я делаю это как:
var school_id = req.params.school_id;
var student_id = req.params.student_id;
School
.findOne({'_id': school_id, 'students._id': student_id})
.populate({path: 'students.class'})
.exec(function (err, data) {
done(err, data);
});
Когда я это делаю, я получаю следующую ошибку:
"message": "Schema hasn't been registered for model \"School.classes\".\nUse mongoose.model(name, schema)",
"name": "MissingSchemaError"
Возможно ли заполнить вложенный документ из другого вложенного документа?
Любая помощь приветствуется. Спасибо:)