我在使用 Mongoose 填充嵌套文档数组时遇到问题,我在其他线程中看到的解决方案似乎都不起作用。
以下是与我的问题相关的模型:
比赛
const MatchSchema = new Schema({
home: {
type: Schema.Types.ObjectId,
ref: 'Team',
},
away: {
type: Schema.Types.ObjectId,
ref: 'Team',
},
competition: {
type: Schema.Types.ObjectId,
ref: 'Competition',
},
date: Date,
live: Boolean,
odds: [
{
type: Schema.Types.ObjectId,
ref: 'Odd',
}
],
})
奇怪
const OddSchema = new Schema({
oddValue: Number,
option: {
type: Schema.Types.ObjectId,
ref: 'Option'
},
website: {
type: Schema.Types.ObjectId,
ref: 'Website'
},
market: {
type: Schema.Types.ObjectId,
ref: 'Market'
},
match: {
type: Schema.Types.ObjectId,
ref: 'Match'
},
})
市场
const MarketSchema = new Schema({
market: String,
period: String,
options: [
{
option: {
type: Schema.Types.ObjectId,
ref: 'Option'
},
}
],
})
选项
const OptionSchema = new Schema({
name: String,
})
这是我目前填充文档的方式
let matches = await Match.find()
.populate('home')
.populate('away')
.populate({
path: 'competition',
populate: [
{ path: 'country', model: 'Country' },
{ path: 'sport', model: 'Sport'}
]
})
.populate({
path: 'odds',
populate: [
{ path: 'option', model: 'Option' },
{ path: 'website', model: 'Website' },
{ path: 'market', model: 'Market' }
]
})
我在填充已填充市场文档中的嵌套“选项”字段时遇到问题。
我试过链接填充调用,比如
.populate({
path: 'odds',
populate: {
{ path: 'market', model: 'Market',
populate: { path:'options.option', model: 'Option' }}
}
})
但我一直得到奇数文档的相同输出,其中所有字段都已成功填充,除了嵌套市场字段中的选项数组。
我组织数据的方式有问题吗?我是否错误地调用了 populate ? 提前致谢