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 }