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 }