Sto usando mongotemplate per Spring, e mi chiedevo come avrei potuto incrementare un valore di uno dei miei documenti che ho in un array atomicamente. Immagina di averlo
{'a':1, b:[{_id:341432, c:2 }, {_id:341445, c:3 }]};
Quello che vorrei è l’incremento c da 3 a 4 per l’_id 341445
Sto usando findAndModify ma non so come posso farlo per un documento annidato in un array.
Saluti.
Per aggiornare un elemento in un campo array, è ansible utilizzare l’ operatore $ posizionale
Ad esempio, il seguente js incrementa c da 3 a 4 per _id 341445:
db.collection.update({a:1, "b._id":341445} , {$inc:{"b.$.c":1}})