sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB $mul

MongoDB har en $mul feltopdateringsoperatør, der giver dig mulighed for at gange en værdi med et bestemt beløb.

Hvis feltet ikke allerede eksisterer, oprettes det, og dets værdi sættes til nul (0 ) ved at bruge den samme numeriske type som multiplikatoren.

Eksempel

Antag, at vi har en samling med følgende dokument:

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

Vi kan bruge $mul operator i forbindelse med update() metode til at øge bar felt.

Sådan:

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

Output:

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

Dette fortæller os, at ét dokument blev matchet og ændret.

Lad os tjekke samlingen igen:

db.foo.find()

Resultat:

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

Vi kan se, at beløbet er fordoblet til 20.

Multipér et felt, der ikke eksisterer

Når du bruger $mul på et felt, der ikke findes i dokumentet, tilføjes feltet og indstilles til nul (0 ) ved at bruge den samme numeriske type som multiplikatoren.

Eksempel:

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

Output:

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

Bemærk, at vi har opdateret to felter; bar feltet og extra felt (som ikke oprindeligt eksisterede).

Lad os tjekke dokumentet igen:

db.foo.find()

Resultat:

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

Vi kan se, at bar felt er blevet ganget med 3 , og en ny extra felt er blevet tilføjet og sat til 0 .

Blandede typer

Multiplikation med værdier af blandede numeriske typer (32-bit heltal, 64-bit heltal, float) kan resultere i konvertering af numerisk type.

Se MongoDB-dokumentationen for en forklaring.


  1. MongoDB grupperer efter værdier i et matrixfelt

  2. Forskellen mellem count() og find().count() i MongoDB

  3. Konverter ObjectID (Mongodb) til String i JavaScript

  4. Enheder, der skal bruges til maxdistance og MongoDB?