在Node.js中更新MongoDB的查询

时间:2018-07-18 09:58:14

标签: node.js mongodb

在接下来的MongoDB文档的Purchases数组中,如何将状态为0的产品“ car”的“ status”属性更新为1。

MongoDB文档::

{
    "local": {
        "Name": "Rio",
        "Income": 300000,
        "purchases": [{
                "prod": "car",
                "status": 1
            },
            {
                "prod": "bike",
                "status": 0
            },
            {
                "prod": "car",
                "status": 0
            }
        ]
    }
}

3 个答案:

答案 0 :(得分:2)

您需要将$位置运算符与$elemMatch运算符一起使用

  

位置$运算符标识数组中要更新的元素   无需在元素中明确指定元素的位置   数组。

db.collection.update(
  { "local.purchases": { "$elemMatch": { "prod": "car", "status": 0 }}},
  { "$set": { "local.purchases.$.status": 1 }}
)

答案 1 :(得分:1)

您需要使用$elemMatch来匹配两个条件上的数组元素。

db.colname.update(
  {"local.purchases":{"$elemMatch":{"prod":"car", "status":0}}},
  {"$set":{"local.purchases.$.status":1}}
)

答案 2 :(得分:0)

查询将是:-db.sample.update({“ local.purchases.status”:0},{$ set:{“ local.purchases。$。status”:1}});

说明:- 在这里,您将必须使用$运算符来引用与update函数的第一个参数中的find查询匹配的那些购买。希望对您有所帮助。