MongoDB在多个条件下更新

时间:2019-10-19 07:22:21

标签: mongodb

我正在尝试更新满足两个不同条件的我的一个领域的信息。我不知道这是否是正确的做法,但可以得到指导。我遇到以下错误:“未知的顶级运算符:$ eq”

db.shop.update({"$and":[{"item.name":"Milk"}, {"$eq":{"item.price":2.80}}]}, {"$set": {"item.expiry":"21/10/19"}});

2 个答案:

答案 0 :(得分:0)

删除$eq$and,只需使用以下查询即可。

db
  .shop
  .update({
    "item.name": "Milk",
    "item.price": 2.80
  }, {
    "$set": {
      "item.expiry": "21/10/19"
    }
  });

答案 1 :(得分:0)

您可以将$ and用作

db.shop.update(
  {"$and":[{"$eq":["item.name","Milk"]}, {"$eq":["item.price",2.80]}]}, 
  {"$set": {"item.expiry":"21/10/19"}}
)

but it is equivalent to below and will be faster as expression takes time to compute

db.shop.update(
 {"item.name":"Milk","item.price":2.80}, 
 {"$set": {"item.expiry":"21/10/19"}}
)