【问题标题】:Update nested array filed in multiple doc at once一次更新多个文档中的嵌套数组字段
【发布时间】:2022-01-02 22:39:53
【问题描述】:

我在以下结构中收集了大量记录。

在这里,我想将所有“地板”字段更新为空“”,无论其“不适用”。它不应该影响其他已经具有楼层价值的街区,比如一楼二楼。

有人可以帮忙吗?

{
    "id" : "181",
    "EID" : "83",
    "History" : [ 
        {
            "aNum" : "12324",
            "dev" : [ 
                {
                    "type" : "",
                    "room" : "Office",
                    "floor" : "Second Floor"
                }, 
                {
                    "type" : "",
                    "room" : "Bedroom",
                    "floor" : "n/a"
                },
                {
                    "type" : "",
                    "room" : "Bedroom",
                    "floor" : "First Floor"
                },
                {
                    "type" : "",
                    "room" : "Bedroom",
                    "floor" : "n/a"
                },
            ]
        }
    ]
}

【问题讨论】:

    标签: arrays mongodb mongoose mongodb-query pymongo


    【解决方案1】:

    使用arrayFiltersfiltered $[<identifier>] operator

    db.collection.update({},
    {
      $set: {
        "History.$[].dev.$[dev].floor": ""
      }
    },
    {
      arrayFilters: [
        {
          "dev.floor": "n/a"
        }
      ],
      multi: true
    })
    

    Sample Mongo Playground

    【讨论】:

      猜你喜欢
      • 2018-12-08
      • 1970-01-01
      • 2018-03-30
      • 2020-06-29
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      相关资源
      最近更新 更多