我收到此错误,但架构中没有虚拟内容。
Error: If you are populating a virtual, you must set the localField and foreignField options
模式
let kategoriSchemaObject = {
//...
kategoriChildren: [{
type: Schema.Types.ObjectId,
ref: 'Kategori'
}],
//...
}
let kategoriSchema = new Schema(kategoriSchemaObject , {
timestamps: {
createdAt: 'created_at'
}
});
mongoose.model('Kotegori', kategoriSchema );
查询
Categories.find({
kategoriUst: null,
})
.populate({
path: 'kategoriChildren',
options: {
limit: 8,
},
populate: {
path: ' kategoriChildren',
select: 'name',
options: {
limit: 6,
},
},
})
.exec()
.then((data) => {
//...
next();
})
.catch((err) => next(err));
如果我删除第二个填充它按预期工作。
我在这里遗漏了什么吗?我还开了issue这个。
答案 0 :(得分:1)
正如评论部分所述 :
populate(...)
说明' kategoriChildren'
中有一个空格。
类别架构的名称拼写错误:
您确实将您的架构创建为Kotegori,将您的链接创建为Kategori