首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mongo移除/拉取深度嵌套数组中的子项

mongo移除/拉取深度嵌套数组中的子项
EN

Stack Overflow用户
提问于 2021-02-10 17:33:14
回答 1查看 56关注 0票数 1

我有一个嵌套很深的家庭成员文档

代码语言:javascript
运行
复制
[{
  "id": 1,
  "children" : [
    {
        "id" : 1,
        "grandChildren": [
            {
                "id" : 1,
                "toys": [
                    {
                        "id":1
                    }
                ]

            }
        ]
    },
    {
        "id" : 2,
        "grandChildren": [
            {
                "id" : 1,
                "toys": [
                    {
                        "id":1
                    }
                ]

            }
        ]
    }
  ]
}]

我被告知这些玩具是孙子孙女独有的,也是独一无二的,等等,但它们可能不是,我想绝对确保当我移除它们时,我只是为特定孩子的特定孙子等移除它们。

我有一个查询,可以拉出所有的玩具匹配的id我想知道我如何才能更具体,通过特定的父母挖洞?

代码语言:javascript
运行
复制
db.family.updateOne(
 {"id": "1"}, 
 {"$pull" : 
   { "children.$[].grandChildren.$[].toys" : 
     {"id" : "1"}
   }
 })

感谢所有的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 18:33:47

您想要做的是像这样使用arrayFilters

代码语言:javascript
运行
复制
db.collection.updateOne({
  "id": "1"
},
{
  "$pull": {
    "children.$[child].grandChildren.$[grandChild].toys": {
      "id": "1"
    }
  }
},
{
  arrayFilters: [
    {
      "child.id": "1"
    },
    {
      "grandChild.id": "1"
    }
  ]
})

Mongo Playground

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66134247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档