sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB $multiplicera

I MongoDB, $multiply aggregeringspipeline-operatör multiplicerar siffror och returnerar resultatet.

För att använda $multiply operatör, skicka numren till operatören i en array.

Argumenten kan vara vilket giltigt uttryck som helst, så länge de löser sig till siffror.

Exempel

Anta att vi har en samling som heter data med följande dokument:

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

Vi kan använda $multiply operatör inom en aggregeringspipeline för att multiplicera två eller flera av dessa tal tillsammans.

Multiplicera 2 nummer

Här är ett exempel på att multiplicera två tal tillsammans.

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

Resultat:

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

Multiplicera 3 siffror

Här är det igen, förutom den här gången multiplicerar vi alla tre talen tillsammans.

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

Resultat:

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

Negativa värden

Siffrorna kan vara positiva eller negativa.

Anta att vi lägger till följande dokument i vår samling:

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

Låt oss nu köra de tidigare exemplen igen och se vad som händer:

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

Resultat:

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

Och här är den med tre siffror:

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

Resultat:

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

När du multiplicerar ett negativt tal med ett positivt tal är produkten alltid negativ. Men när du multiplicerar två negativa tal eller två positiva tal är produkten alltid positiv.

Lägg till ditt eget nummer

Du är inte nödvändigtvis begränsad till bara siffrorna i dokumentet/dokumenten. Du kan använda dina egna siffror om du behöver multiplicera alla fält med ett fast belopp.

Exempel:

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

Resultat:

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


  1. Sessionstillstånd med Azure Redis Cache fungerar inte på flera instanser

  2. Användning av ServiceStack.Redis.Sentinel

  3. Viktiga saker att övervaka i MongoDB

  4. mongodb hur man får maxvärde från samlingar