当我想导入的对象嵌套在其他模式中时,我如何在Mongoose中执行model.populate?
我有两个schema:
const eventSchema = new mongoose.Schema({
eventName: {
type: String,
},
targetAudience: [
{
type: mongoose.Schema.Types.ObjectID,
ref: "setting",
},
] }
const settingSchema = new mongoose.Schema ({
name : {
type: String,
require: true
},
settingData : [
{
icon: {
type: String,
require: true
},
name: {
type: String,
require: true
}
}
]}
在settingSchema中,其中一个文档是:
{ name: Audience,
SettingData: [{ icon:AAA, name:audience1}, {icon:BBB, name:audience1}, icon:CCC, name:audience3]}
正如您在模式中看到的,对于任何事件,都有一个名为targetAudience的数组,其中包括该特定事件的相应受众的ID。
当我使用events.findOne()时,我希望用Audience对象填充targetAudience数组。我试图这样做,但它返回一个空数组。
const res = await eventsData.findOne(filter).populate({
path: 'targetAudience',
populate: {path: 'settingData'}
});
我试着用几种方法写populate,但都不起作用。我在Stack Overflow中读到了一些同样问题的问题,但都不起作用。我读了mongoose文档关于populate,但它对我没有帮助。
1条答案
按热度按时间fivyi3re1#
您可以简单地使用它来填充引用键。
访问此链接以了解更多说明https://www.geeksforgeeks.org/mongoose-populate-method/