【问题标题】:MongoDB Update Multiple Nested ArraysMongoDB 更新多个嵌套数组
【发布时间】:2020-04-26 01:19:45
【问题描述】:

我正在尝试使用具有以下结构的 PyMongo 批量更新 mongodb 中嵌套文档数组中的值:

document-|
    events-|
       event1-|
          key: (1, 2)
       event2-|
          key: (1, 2)
       ...

对于每个文档,对于事件中的每个事件,我想检查 kv 对 UTM_coords_xy 的存在,如果不存在,则插入 kv 对 UTM_coords_xy: (x_coord, y_coord)。我已经做到了这一点,但它并没有完全按照我的意愿去做,有什么想法吗?

db.update({"events.$[i].UTM_coords_xy": {"$exists" : "False"}}, { "$set": { "events.$[i].UTM_coords_xy": position } }, multi=True)

【问题讨论】:

    标签: python database mongodb mongodb-query pymongo


    【解决方案1】:

    我认为array filters 会为你解决问题。

    a = db.update_many({
        "events": {"$exists": True}
    }, {
        "$set": {
            "events.$[i].UTM_coords_xy": position
        }
    }, array_filters= [{"i.UTM_coords_xy": {"$exists": False}}])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2017-09-11
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多