Mongoose 在多个数组中填充嵌套元素

Posted

技术标签:

【中文标题】Mongoose 在多个数组中填充嵌套元素【英文标题】:Mongoose populate nested element inside of multiple arrays 【发布时间】:2021-04-17 21:36:58 【问题描述】:

我有以下架构:

const userSchema = new Schema(
    ...,
    categories: [
        
            name: 
                type: String,
                required: true
            ,
            products: [
                
                    type: mongoose.Types.ObjectId,
                    required: false,
                    ref: 'Product'
                
            ]
        
    ],
...

我想获取用户拥有的所有产品。

我看到了更多关于这个主题的问题,但我没有得到它的工作。

【问题讨论】:

这能回答你的问题吗? How to populate nested entities in mongoose? 如果我的答案没有解决您的问题,请添加控制器,因为我测试了我的解决方案并且它是正确的 【参考方案1】:

如果您输入的数据正确,您可以这样做:

let result = await User.findById(id).populate("categories.products").lean()

【讨论】:

以上是关于Mongoose 在多个数组中填充嵌套元素的主要内容,如果未能解决你的问题,请参考以下文章

试图在 mongoose 中填充一个嵌套数组,抛出一个看似无关的 CastError,我不明白为啥

无法填充嵌套数组

Mongoose:填充嵌套的 id 数组

Mongoose:嵌套级别的多个填充

MongoDB Mongoose 聚合查询深度嵌套数组删除空结果并填充引用

填充嵌套数组的无引用对象