Mongoose: ссылка на поддокумент из другого поддокумента И популяции - PullRequest
0 голосов
/ 03 июля 2018

У меня есть модель документа с именем школа , которая в свою очередь имеет два поддокумента:

  1. студенты
  2. класс

Каждый ученик принадлежит к одному классу.

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"

Возможно ли заполнить вложенный документ из другого вложенного документа? Любая помощь приветствуется. Спасибо:)

...