Du vil bruge update
kommando på din samling som følger (eksempel):
db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
Hvad skete der lige?
På den første parameter i update
du definerer en query
for at matche dokumenter, du ønsker at opdatere. Vi søger efter en ejendom med navnet title
inde i arrayet kaldet my_array
. Du kan matche mod body
eller email
selvfølgelig ved at ændre priknotationen til:"my_array.email"
.
Den anden parameter definerer opdateringen, den ændring, der skal anvendes. Vi har en $inc
operatør for at øge felter, som vi bruger i denne erklæring. query
vælger et dokument med det matchede array-element. Du kan nå ud til dette matchede matrixelement med $
notation. "my_array.$"
vælger det matchede array-element, som har en title
, email
og body
. Hvis du forsøger at give værdi til et ikke-eksisterende felt, vil MongoDB gøre det for dig. Hvis feltet ikke eksisterer, $inc
indstiller feltet til det angivne beløb. $inc
operatøren accepterer positive og negative trinvise beløb.
Få mere at vide om opdateringskommandoen.
Et andet eksempel:
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);