Du vill använda update
kommando på din samling enligt följande (exempel):
db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
Vad hände just?
På den första parametern i update
du definierar en query
för att matcha dokument som du vill uppdatera. Vi söker efter en egenskap som heter title
inuti arrayen som heter my_array
. Du kan matcha mot body
eller email
naturligtvis genom att ändra punktnotationen till:"my_array.email"
.
Den andra parametern definierar uppdateringen, ändringen som ska tillämpas. Vi har en $inc
operatör för att öka fält, som vi använder i detta uttalande. query
väljer ett dokument med det matchade matriselementet. Du kan nå detta matchade arrayobjekt med $
notation. "my_array.$"
väljer det matchade arrayelementet, som har en title
, email
och body
. Om du försöker ge värde till ett icke existerande fält, kommer MongoDB att göra det åt dig. Om fältet inte finns, $inc
ställer in fältet till det angivna beloppet. $inc
operatören accepterar positiva och negativa inkrementella belopp.
Läs mer om uppdateringskommandot.
Ett annat exempel:
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);