sql >> Database >  >> NoSQL >> MongoDB

MongoDB $ vermenigvuldigen

In MongoDB is de $multiply aggregatiepijplijnoperator vermenigvuldigt getallen met elkaar en geeft het resultaat terug.

Om de $multiply te gebruiken operator, geef de getallen door aan de operator in een array.

De argumenten kunnen elke geldige uitdrukking zijn, zolang ze maar worden omgezet in getallen.

Voorbeeld

Stel dat we een verzameling hebben met de naam data met het volgende document:

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

We kunnen de $multiply . gebruiken operator binnen een aggregatiepijplijn om twee of meer van die getallen met elkaar te vermenigvuldigen.

Vermenigvuldig 2 getallen

Hier is een voorbeeld van het vermenigvuldigen van twee getallen.

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

Resultaat:

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

Vermenigvuldig 3 getallen

Hier is het weer, behalve dat we deze keer alle drie de getallen met elkaar vermenigvuldigen.

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

Resultaat:

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

Negatieve waarden

De getallen kunnen positief of negatief zijn.

Stel dat we het volgende document aan onze collectie toevoegen:

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

Laten we nu de vorige voorbeelden opnieuw uitvoeren en kijken wat er gebeurt:

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

Resultaat:

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

En hier is het met drie cijfers:

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

Resultaat:

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

Als je een negatief getal met een positief getal vermenigvuldigt, is het product altijd negatief. Maar als je twee negatieve getallen of twee positieve getallen vermenigvuldigt, is het product altijd positief.

Voeg uw eigen nummer toe

U bent niet noodzakelijkerwijs beperkt tot alleen de cijfers in de documenten. U kunt uw eigen getallen gebruiken als u alle velden met een vast bedrag moet vermenigvuldigen.

Voorbeeld:

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

Resultaat:

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


  1. MongoDB kan de gegevensmap niet vinden na het upgraden naar Mac OS 10.15 (Catalina)

  2. Mongoose:ObjectId-vergelijkingen mislukken inconsistent

  3. afbeelding opslaan in mongodb

  4. Databasereferenties correct verbergen