Sie möchten das update
verwenden Befehl für Ihre Sammlung wie folgt (Beispiel):
db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
Was ist gerade passiert?
Auf dem ersten Parameter von update
Sie definieren eine query
um Dokumente abzugleichen, die Sie aktualisieren möchten. Wir suchen nach einer Eigenschaft namens title
innerhalb des Arrays namens my_array
. Sie könnten mit body
übereinstimmen oder email
natürlich durch Ändern der Punktnotation in:"my_array.email"
.
Der zweite Parameter definiert das Update, die anzuwendende Änderung. Wir haben einen $inc
Operator zum Erhöhen von Feldern, die wir in dieser Anweisung verwenden. Die query
wählt ein Dokument mit dem übereinstimmenden Array-Element aus. Sie können dieses übereinstimmende Array-Element mit $
erreichen Notation. Der "my_array.$"
wählt das übereinstimmende Array-Element aus, das einen title
hat , email
und body
. Wenn Sie versuchen, einem nicht vorhandenen Feld einen Wert zuzuweisen, übernimmt MongoDB dies für Sie. Wenn das Feld nicht existiert, $inc
setzt das Feld auf den angegebenen Betrag. Der $inc
Operator akzeptiert positive und negative inkrementelle Beträge.
Erfahren Sie mehr über den Update-Befehl.
Ein weiteres Beispiel:
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);