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

MongoDB $ multiplicere

I MongoDB er $multiply aggregeringspipeline-operatør multiplicerer tal sammen og returnerer resultatet.

For at bruge $multiply operatør, videregive numrene til operatøren i en matrix.

Argumenterne kan være et hvilket som helst gyldigt udtryk, så længe de løses til tal.

Eksempel

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

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

Vi kan bruge $multiply operatør inden for en aggregeringspipeline for at gange to eller flere af disse tal sammen.

Multiplicer 2 tal

Her er et eksempel på at gange to tal sammen.

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

Resultat:

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

Multiplicer 3 tal

Her er det igen, bortset fra at vi denne gang gange alle tre tal sammen.

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 }

Negative værdier

Tallene kan være positive eller negative.

Antag, at vi tilføjer følgende dokument til vores samling:

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

Lad os nu køre de foregående eksempler igen og se, hvad der sker:

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 }

Og her er den med tre tal:

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 ganger et negativt tal med et positivt tal, er produktet altid negativt. Men når du ganger to negative tal eller to positive tal, er produktet altid positivt.

Tilføj dit eget nummer

Du er ikke nødvendigvis begrænset til kun numrene i dokumentet/erne. Du kan bruge dine egne tal, hvis du skal gange alle felter med et fast beløb.

Eksempel:

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

Resultat:

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


  1. Hvad er Redis pubsub, og hvordan bruger jeg det?

  2. Redis Vs RabbitMQ som datamægler/beskedsystem mellem Logstash og elasticsearch

  3. MongoDB $toString

  4. Mongo-id'er fører til skræmmende URL'er