Подтвердить что ты не робот

Mongodb Значение приращения внутри вложенного массива

Я использую mongotemplate для Spring, и мне было интересно, как я могу увеличить значение одного из моих документов, которые у меня есть в массиве атомарно. Представьте, что мы имеем

{'a':1,
   b:[{_id:341432,
       c:2
      },
      {_id:341445,
       c:3
      }]};

Я хотел бы получить инкремент c от 3 до 4 для _id 341445

Я использую findAndModify, но я не знаю, как это сделать для вложенного документа в массиве.

С уважением.

4b9b3361

Ответ 1

Чтобы обновить элемент в поле массива, вы можете использовать оператор positional $

Например, следующие js приращения c от 3 до 4 для _id 341445:

db.collection.update({a:1, "b._id":341445} , {$inc:{"b.$.c":1}})