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

MongoDB $mul

MongoDB hat einen $mul Feldaktualisierungsoperator, mit dem Sie einen Wert mit einem bestimmten Betrag multiplizieren können.

Wenn das Feld noch nicht existiert, wird es erstellt und sein Wert auf Null gesetzt (0 ) mit demselben numerischen Typ wie der Multiplikator.

Beispiel

Angenommen, wir haben eine Sammlung mit dem folgenden Dokument:

{ "_id" : 1, "bar" : 10 } 

Wir können den $mul verwenden Operator in Verbindung mit update() Methode, um den bar zu erhöhen Feld.

So:

db.foo.update(
  { _id: 1 },
  { $mul: { bar: 2 } }
)

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.foo.find()

Ergebnis:

{ "_id" : 1, "bar" : 20 } 

Wir können sehen, dass sich der Betrag auf 20 verdoppelt hat.

Multipliziere ein Feld, das nicht existiert

Wenn Sie $mul verwenden Bei einem Feld, das im Dokument nicht vorhanden ist, wird das Feld hinzugefügt und auf Null gesetzt (0 ) mit demselben numerischen Typ wie der Multiplikator.

Beispiel:

db.foo.update(
  { _id: 1 },
  { $mul: { bar: 3, extra: 2 } }
)

Ausgabe:

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

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

Sehen wir uns das Dokument noch einmal an:

db.foo.find()

Ergebnis:

{ "_id" : 1, "bar" : 60, "extra" : 0 } 

Das sehen wir am bar Feld wurde mit 3 multipliziert , und ein neues extra Feld wurde hinzugefügt und auf 0 gesetzt .

Mischtypen

Die Multiplikation mit Werten gemischter numerischer Typen (32-Bit-Ganzzahl, 64-Bit-Ganzzahl, Gleitkommazahl) kann zu einer Konvertierung des numerischen Typs führen.

Eine Erklärung finden Sie in der MongoDB-Dokumentation.