Mongodb 如果该字段没有';t存在于集合中

Mongodb 如果该字段没有';t存在于集合中,mongodb,mongodb-query,Mongodb,Mongodb Query,我在集合中有一些文档订单,其中已为新文档设置了值真/假 现在我想要的是,对于过去的文档,它应该插入密钥 对于特定的订单类型,显示值为false。为此 我编写了如下所示的查询: db.getCollection("orders").update({"order_type":1}, {$set: {"is_show": false}}, false, true) 但是,对于新文档和旧文档,它添加的某些方式是错误的 那么,如何修改查询以实现该功能?您可以使用查询运算符检查文档是否包含该字段 db.g

我在集合中有一些文档
订单
,其中
已为新文档设置了值
真/假

现在我想要的是,对于过去的文档,它应该插入密钥
对于特定的订单类型,
显示值为
false
。为此 我编写了如下所示的查询:

db.getCollection("orders").update({"order_type":1}, {$set: {"is_show": false}}, false, true)
但是,对于新文档和旧文档,它添加
的某些方式是错误的

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

您可以使用查询运算符检查文档是否包含该字段

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