填充上的Mongoose错误

时间:2018-05-26 17:45:17

标签: mongoose mongoose-populate

我有两个彼此有关系的集合。一个会话可以包含多个学生,我想通过使用populate()来检索。这些是架构:

const studentSchema = new Schema({
    first_name: String,
    last_name: String
}) 

const sessionSchema = new Schema({
    course_code: String,
    students: [{ type: Schema.Types.ObjectId, ref: 'Student' }]
})

const Session = mongoose.model('sessions', sessionSchema)
const Student = mongoose.model('students', studentSchema)

每当我在session或student上使用findOne()时,它都会提供所需的输出。但是当我像这样使用populate()时,它会给我一个错误:

Session
    .findOne({'course_code': '5072NEAN6Y'})
    .populate("students")
    .exec(function (err, ps){
        if(err){
            console.log(err);
            return;
         }
         console.log("succes");
});

错误:     MissingSchemaError:尚未为模型“Student”注册Schema。

有人可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:2)

显然更改populate()的参数使其工作:

.populate({path: 'students', model: Student})