U wilt de update . gebruiken commando op uw verzameling als volgt (voorbeeld):
db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
Wat is er net gebeurd?
Op de eerste parameter van update je definieert een query overeenkomen met documenten die u wilt bijwerken. We zoeken naar een eigenschap met de naam title binnen de array genaamd my_array . Je zou kunnen matchen met body of email natuurlijk door de puntnotatie te wijzigen in:"my_array.email" .
De tweede parameter definieert de update, de wijziging die moet worden toegepast. We hebben een $inc operator om velden te verhogen, die we in deze verklaring gebruiken. De query selecteert een document met het overeenkomende array-element. U kunt dit overeenkomende array-item bereiken met de $ notatie. De "my_array.$" selecteert het overeenkomende array-element, dat een title . heeft , email en body . Als u waarde probeert te geven aan een niet-bestaand veld, zal MongoDB dat voor u doen. Als het veld niet bestaat, $inc stelt het veld in op het opgegeven bedrag. De $inc operator accepteert positieve en negatieve incrementele bedragen.
Meer informatie over de update-opdracht.
Nog een voorbeeld:
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);