当我要导入的对象嵌套在另一个模式中时,我如何在 Mongoose 中进行模型填充?
我有这两个模式:
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() 时,我希望 targetAudience 数组用 Audience 对象填充。我试图这样做,但它返回一个空数组。
const res = await eventsData.findOne(filter).populate({
path: 'targetAudience',
populate: {path: 'settingData'}
});
我尝试以多种方式编写填充,但没有任何效果。我在 Stack Overflow 中阅读了一些针对相同问题的问题,但没有任何效果。我阅读了有关填充的猫鼬文档,但它对我没有帮助。
您可以简单地使用它来填充您的参考密钥。
const res = await eventsData.findOne(filter).populate('targetAudience');
访问此链接以获得更多说明https://www.geeksforgeeks.org/mongoose-populate-method/