代码之家  ›  专栏  ›  技术社区  ›  Mrugesh

使用默认值更新集合中不存在密钥的所有文档

  •  2
  • Mrugesh  · 技术社区  · 5 年前

    orders 哪里 is_show 已使用值设置 true/false 对于新文档。

    现在我想要的是,对于过去的文档,它应该插入密钥
    这是你的表演吗 有价值 false 对于特定的订单类型。为此

    db.getCollection("orders").update({"order_type":1}, {$set: {"is_show": false}}, false, true)
    

    但有些人认为它是如何增加的 新文档和旧文档均为false。

    那么,如何修改查询以实现该功能呢?

    1 回复  |  直到 5 年前
        1
  •  4
  •   Ashh    5 年前

    你可以用 $exists 查询运算符检查文档是否包含该字段

    db.getCollection("orders").update(
      { "order_type": 1, "is_show": { "$exists": false }},
      { "$set": { "is_show": false }},
      { "multi": true }
    )