sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB $násobit

V MongoDB, $multiply operátor agregačního kanálu vynásobí čísla dohromady a vrátí výsledek.

Chcete-li použít $multiply operátor, předejte čísla operátoru v poli.

Argumenty mohou být jakýkoli platný výraz, pokud se vyhodnotí na čísla.

Příklad

Předpokládejme, že máme kolekci nazvanou data s následujícím dokumentem:

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

Můžeme použít $multiply operátora v rámci agregačního kanálu pro vynásobení dvou nebo více těchto čísel dohromady.

Vynásobte 2 čísla

Zde je příklad násobení dvou čísel dohromady.

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

Výsledek:

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

Vynásobte 3 čísla

Tady je to znovu, ale tentokrát vynásobíme všechna tři čísla dohromady.

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

Výsledek:

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

Záporné hodnoty

Čísla mohou být kladná nebo záporná.

Předpokládejme, že do naší sbírky přidáme následující dokument:

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

Nyní si znovu spusťte předchozí příklady a uvidíme, co se stane:

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

Výsledek:

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

A tady je to se třemi čísly:

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

Výsledek:

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

Když vynásobíte záporné číslo kladným číslem, pak je součin vždy záporný. Ale když vynásobíte dvě záporná čísla nebo dvě kladná čísla, součin je vždy kladný.

Přidejte své vlastní číslo

Nejste nutně omezeni pouze na čísla v dokumentu/dokumentech. Pokud potřebujete všechna pole vynásobit pevnou částkou, můžete použít svá vlastní čísla.

Příklad:

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

Výsledek:

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


  1. Jak nastavit expiraci na více klíčů v Redis

  2. WiredTiger a aktualizace na místě

  3. Jak přidružit vlastnosti k objektu socket.io v Redis Store?

  4. MongoDB Node našel, jak zvládnout žádné výsledky?