在MongoDB中,如何增加多个值?

在MongoDB中,如何增加多个值?,mongodb,mongodb-query,updates,Mongodb,Mongodb Query,Updates,数据库文档如下所示: { "_id" : 12345, "options" : [ { "no" : 1, "apples" : 0 }, { "no" : 2, "apples" : 0 }, { "no" : 3, "apples" : 0

数据库文档如下所示:

{   "_id" : 12345,
    "options" : [ 
        {
            "no" : 1,
            "apples" : 0
        }, 
        {
            "no" : 2,
            "apples" : 0
        }, 
        {
            "no" : 3,
            "apples" : 0
        }
    ]
}
我想用一个查询来增加苹果,只说数字1和3,每个都是一个。谢谢。

您可以使用阵列过滤器更新阵列中的字段:

以下是我为更新值而编写的查询:

db.sample.update(
  {},
  {
    $inc:{
      "options.$[options].apples":1
    }
  },
  {
    arrayFilters:[
      {
        "options.no":{
          $in:[1,3]
        }
      }
    ]
  }
)
您可以根据需要在arrayFilters中设置过滤器

有关ArrayFilter的更多信息,请阅读


希望这会有所帮助:

我喜欢这样,我可以将[1,3]预先定义为一个变量,这在这种情况下会有所帮助,谢谢。我很高兴它有帮助: