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 } }
);