MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB $inc

MongoDB hat einen $inc Feldaktualisierungsoperator, mit dem Sie einen Wert um einen bestimmten Betrag erhöhen können.

Sie können positive und negative Werte verwenden (d. h. um den Wert zu erhöhen oder zu verringern).

Wenn das Feld noch nicht existiert, wird es mit dem angegebenen Wert erstellt.

Beispiel

Angenommen, wir haben eine Sammlung namens dogs mit folgendem Dokument:

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

Hier das weight Feld enthält einen Wert, der erhöht oder verringert werden kann.

Inkrement

Wir können den $inc verwenden Operator in Verbindung mit update() Methode, um das Gewicht dieses Hundes zu erhöhen.

So:

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

Ausgabe:

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

Dies sagt uns, dass ein Dokument abgeglichen und geändert wurde.

Sehen wir uns die Sammlung noch einmal an:

db.dogs.find()

Ergebnis:

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

Wir können sehen, dass sich das Gewicht des Hundes um 5 erhöht hat.

Verringern

Sie können den Wert verringern, indem Sie $inc einen negativen Wert zuweisen Betreiber.

So:

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

Ausgabe:

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

Überprüfen Sie die Sammlung:

db.dogs.find()

Ergebnis:

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

Wir können sehen, dass das Gewicht jetzt um 5 verringert wurde.

Erhöhen Sie ein nicht vorhandenes Feld

Wenn Sie ein Feld erhöhen, das im Dokument nicht vorhanden ist, wird das Feld hinzugefügt und ihm der angegebene Wert zugewiesen.

Beispiel:

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

Ausgabe:

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

Beachten Sie, dass wir zwei Felder aktualisiert haben; das weight Feld und die height Feld (das ursprünglich nicht existierte).

Sehen wir uns das Dokument noch einmal an:

db.dogs.find()

Ergebnis:

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

Wir können das weight sehen Feld wurde um 1 erhöht , und eine neue height Feld mit dem angegebenen Wert von 30 hinzugefügt wurde .