MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB $inc

MongoDB a un $inc opérateur de mise à jour de champ qui vous permet d'incrémenter une valeur d'un montant spécifique.

Vous pouvez utiliser des valeurs positives et négatives (c'est-à-dire pour incrémenter ou décrémenter la valeur).

Si le champ n'existe pas déjà, il est créé avec la valeur spécifiée.

Exemple

Supposons que nous ayons une collection appelée dogs avec le document suivant :

{ "_id" : 1, "name" : "Wag", "weight" : 10 }

Ici, le weight champ contient une valeur qui peut être incrémentée ou décrémentée.

Incrémenter

Nous pouvons utiliser le $inc opérateur en conjonction avec le update() méthode pour augmenter le poids de ce chien.

Comme ceci :

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: 5 } }
)

Sortie :

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Cela nous indique qu'un document a été mis en correspondance et modifié.

Vérifions à nouveau la collection :

db.dogs.find()

Résultat :

{ "_id" : 1, "name" : "Wag", "weight" : 15 }

Nous pouvons voir que le poids du chien a augmenté de 5.

Décrémenter

Vous pouvez décrémenter la valeur en fournissant une valeur négative au $inc opérateur.

Comme ceci :

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: -5 } }
)

Sortie :

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Vérifiez la collection :

db.dogs.find()

Résultat :

{ "_id" : 1, "name" : "Wag", "weight" : 10 }

Nous pouvons voir que le poids a maintenant été décrémenté de 5.

Incrémenter un champ qui n'existe pas

Lorsque vous incrémentez un champ qui n'existe pas dans le document, le champ est ajouté et reçoit la valeur spécifiée.

Exemple :

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: 1, height: 30 } }
)

Sortie :

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Notez que nous avons mis à jour deux champs ; le weight champ et la height champ (qui n'existait pas à l'origine).

Vérifions à nouveau le document :

db.dogs.find()

Résultat :

{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }

Nous pouvons voir que le weight le champ a été incrémenté de 1 , et une nouvelle height le champ a été ajouté avec la valeur spécifiée de 30 .