【问题标题】:deleting an entry from an array in mongo collection从 mongo 集合中的数组中删除一个条目
【发布时间】:2020-09-28 01:53:57
【问题描述】:

我们有一个非常复杂的集合结构。 我想从中删除一个条目。我是 mongodb 的新手。

样本集如下,

{
  "rootid": "1",
  "projects": [
    {
      "projectId": "2",
      "proxies": [
        {
          "proxyId": "4",
          "config": {
            "pipeline": [
              {
                "pipelineId": "12",
                "desc": "pipeline"
              },
              {
                "pipelineId": "14",
                "desc": "pipeline1234"
              }
            ]
          }
        }
      ]
    }
  ]
}   

如果符合条件,我想从管道嵌入集合中删除一个条目。

示例: 如果"rootid": "1" ,"projectId": "2", "proxyId": "4", "pipelineId": "12" 那么我想从管道数组中删除第一个条目。

我们使用 Spring Boot 作为框架。 如果有人对 mongo 查询有帮助,我会尝试使用 spring mongoTemplate 进行转换。

提前致谢,

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    听起来您想使用arrayFilters 结合$pull 来实现此目的。

    db.collection.update({
      "rootid": "1"
    },
    {
      "$pull": {
        "projects.$[project].proxies.$[proxy].config.pipeline": {
          pipelineId: "12"
        }
      }
    },
    {
      arrayFilters: [
        {
          "project.projectId": "2"
        },
        {
          "proxy.proxyId": "4"
        }
      ]
    })
    

    Mongo Playground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 2011-01-17
      相关资源
      最近更新 更多