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

MongoDB $pomnóż

W MongoDB $multiply Operator potoku agregacji mnoży liczby przez siebie i zwraca wynik.

Aby użyć $multiply operatora, przekaż liczby do operatora w tablicy.

Argumenty mogą być dowolnymi poprawnymi wyrażeniami, o ile są rozwiązywane na liczby.

Przykład

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

{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }

Możemy użyć $multiply operatora w potoku agregacji, aby pomnożyć dwie lub więcej z tych liczb.

Pomnóż 2 liczby

Oto przykład mnożenia dwóch liczb.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $multiply: [ "$a", "$b" ] } } 
         }
   ]
)

Wynik:

{ "a" : 1000, "b" : 2, "result" : 2000 }

Pomnóż 3 liczby

I znowu, tyle że tym razem mnożymy wszystkie trzy liczby.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        c: 1,
        result: { $multiply: [ "$a", "$b", "$c" ] } } 
         }
   ]
)

Wynik:

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }

Wartości ujemne

Liczby mogą być dodatnie lub ujemne.

Załóżmy, że do naszej kolekcji dodamy następujący dokument:

{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }

Przeprowadźmy teraz ponownie poprzednie przykłady i zobaczmy, co się stanie:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $multiply: [ "$a", "$b" ] } } 
         }
   ]
)

Wynik:

{ "a" : 1000, "b" : 2, "result" : 2000 }
{ "a" : 1000, "b" : -2, "result" : -2000 }

A oto z trzema liczbami:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        c: 1,
        result: { $multiply: [ "$a", "$b", "$c" ] } } 
         }
   ]
)

Wynik:

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
{ "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }

Po pomnożeniu liczby ujemnej przez liczbę dodatnią iloczyn jest zawsze ujemny. Ale kiedy pomnożysz dwie liczby ujemne lub dwie liczby dodatnie, iloczyn jest zawsze dodatni.

Dodaj własny numer

Niekoniecznie jesteś ograniczony tylko do liczb w dokumencie/ach. Możesz użyć własnych liczb, jeśli chcesz pomnożyć wszystkie pola przez ustaloną liczbę.

Przykład:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } } 
         }
   ]
)

Wynik:

{ "result" : 15000 }
{ "result" : 15000 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Powstrzymaj Mongoose przed tworzeniem właściwości _id dla elementów tablicy dokumentów podrzędnych

  2. Wyodrębniona agregacja MongoDB

  3. MongoDB:Jak zdefiniować schemat?

  4. Jak stronicować z Mongoose w Node.js?

  5. Wydajność zapytań MongoDB dla ponad 5 milionów rekordów