我一直在尝试用课程文档填充lessonIds列表。但我得到了一个错误,
Schema hasn't been registered for model \"Lesson\".\nUse mongoose.model(name, schema)
if (req.method === "GET") {
    Course.findById(courseId)
        .populate('lessons').then(course => {
            res.json(course);
        }).catch(err => {
            res.json({ error: err.title + ' : ' + err.message });
        });
}现在,如果我导入注册lessonSchema的课程模型,代码就可以工作了。但是我没有直接在这个文件中使用课程模型,所以我发现我不得不导入一些我不会使用的东西来使其他一些特性工作起来,这是很奇怪的。有没有合适的方法来做这件事?或者以某种方式在数据库连接时注册所有模型?
谢谢!
发布于 2021-08-07 19:37:30
最终创建了一个models.js inside models文件夹,该文件夹导入所有其他模型并导出它们,以确保模式被注册。
发布于 2021-08-05 06:16:11
我遇到了这个问题,多亏了https://stackoverflow.com/a/47038544/2865073,我才得以修复
我通过显式声明Model来修复它,如下所示:
Customer.findOne({}).populate({ path: 'created_by', model: User })https://stackoverflow.com/questions/68565474
复制相似问题