Ответ 1
Чтобы обновить элемент в поле массива, вы можете использовать оператор positional $
Например, следующие js приращения c от 3 до 4 для _id 341445:
db.collection.update({a:1, "b._id":341445} , {$inc:{"b.$.c":1}})
Я использую mongotemplate для Spring, и мне было интересно, как я могу увеличить значение одного из моих документов, которые у меня есть в массиве атомарно. Представьте, что мы имеем
{'a':1,
b:[{_id:341432,
c:2
},
{_id:341445,
c:3
}]};
Я хотел бы получить инкремент c от 3 до 4 для _id 341445
Я использую findAndModify, но я не знаю, как это сделать для вложенного документа в массиве.
С уважением.
Чтобы обновить элемент в поле массива, вы можете использовать оператор positional $
Например, следующие js приращения c от 3 до 4 для _id 341445:
db.collection.update({a:1, "b._id":341445} , {$inc:{"b.$.c":1}})