嵌套数组中的Mongodb Increment值

pau*_*aul 14 java spring mongodb

我正在为Spring使用mongotemplate,我想知道如何以原子方式增加我在一个数组中的一个文件的值.想象一下,我们有

{'a':1,
   b:[{_id:341432,
       c:2
      },
      {_id:341445,
       c:3
      }]};
Run Code Online (Sandbox Code Playgroud)

对于_id 341445,我想要的是将c从3增加到4

我一直在使用findAndModify,但我不知道如何为数组中的嵌套文档创建它.

问候.

小智 30

要更新数组字段中的元素,可以使用位置$运算符

例如,对于_id 341445,以下js将c从3增加到4:

db.collection.update({a:1, "b._id":341445} , {$inc:{"b.$.c":1}})
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!,但请记住,你的答案必须外推到Java (6认同)
  • 当更新查询与 upsert 一起使用时,这将不起作用。 (2认同)