Vous souhaitez utiliser la update commande sur votre collection comme suit (exemple):
db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
Que vient-il de se passer ?
Sur le premier paramètre de update vous définissez une query pour correspondre aux documents que vous souhaitez mettre à jour. Nous recherchons une propriété nommée title à l'intérieur du tableau appelé my_array . Vous pouvez faire correspondre body ou email bien sûr en modifiant la notation par points en :"my_array.email" .
Le deuxième paramètre définit la mise à jour, la modification à appliquer. Nous avons un $inc opérateur pour incrémenter les champs, que nous utilisons dans cette instruction. La query sélectionne un document avec l'élément de tableau correspondant. Vous pouvez accéder à cet élément de tableau correspondant avec le $ notation. Le "my_array.$" sélectionne l'élément de tableau correspondant, qui a un title , email et body . Si vous essayez de donner une valeur à un champ non existant, MongoDB le fera pour vous. Si le champ n'existe pas, $inc définit le champ sur le montant spécifié. Le $inc l'opérateur accepte les montants incrémentiels positifs et négatifs.
En savoir plus sur la commande de mise à jour.
Autre exemple :
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);