MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB $mul

MongoDB ma $mul operator aktualizacji pola, który pozwala pomnożyć wartość przez określoną kwotę.

Jeśli pole jeszcze nie istnieje, jest tworzone, a jego wartość jest ustawiona na zero (0 ) używając tego samego typu liczbowego co mnożnik.

Przykład

Załóżmy, że mamy kolekcję z następującym dokumentem:

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

Możemy użyć $mul operator w połączeniu z update() metoda zwiększania bar pole.

Tak:

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

Wyjście:

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

To mówi nam, że jeden dokument został dopasowany i zmodyfikowany.

Sprawdźmy jeszcze raz kolekcję:

db.foo.find()

Wynik:

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

Widzimy, że kwota podwoiła się do 20.

Pomnóż pole, które nie istnieje

Gdy używasz $mul na polu, które nie istnieje w dokumencie, pole jest dodawane i ustawiane na zero (0 ) używając tego samego typu liczbowego co mnożnik.

Przykład:

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

Wyjście:

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

Zauważ, że zaktualizowaliśmy dwa pola; bar pole i extra pole (które pierwotnie nie istniało).

Sprawdźmy ponownie dokument:

db.foo.find()

Wynik:

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

Widzimy, że bar pole zostało pomnożone przez 3 i nowy extra pole zostało dodane i ustawione na 0 .

Typy mieszane

Mnożenie z wartościami mieszanych typów liczbowych (32-bitowa liczba całkowita, 64-bitowa liczba całkowita, zmiennoprzecinkowa) może skutkować konwersją typu liczbowego.

Zobacz dokumentację MongoDB, aby uzyskać wyjaśnienie.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grupa MongoDB i suma z identyfikatorem jako kluczem

  2. Spring data mongodb nie zamyka połączeń mongodb

  3. GridFS w Spring Data MongoDB

  4. Jak używać instrukcji SQL LIKE w MongoDB

  5. Jak określić kolejność właściwości w obiekcie javascript dla indeksu MongoDB w node.js?