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