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