猫鼬填充嵌套数组不起作用

问题描述 投票:0回答:0

我在使用 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' }}
        }
    })

但我一直得到奇数文档的相同输出,其中所有字段都已成功填充,除了嵌套市场字段中的选项数组。

odd output

我组织数据的方式有问题吗?我是否错误地调用了 populate ? 提前致谢

javascript mongoose mongoose-schema mongoose-populate
© www.soinside.com 2019 - 2024. All rights reserved.