In MongoDB ist das $multiply
Aggregations-Pipeline-Operator multipliziert Zahlen miteinander und gibt das Ergebnis zurück.
Um den $multiply
zu verwenden Operator, übergeben Sie die Zahlen in einem Array an den Operator.
Die Argumente können alle gültigen Ausdrücke sein, solange sie in Zahlen aufgelöst werden.
Beispiel
Angenommen, wir haben eine Sammlung namens data
mit folgendem Dokument:
{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }
Wir können den $multiply
verwenden Operator innerhalb einer Aggregationspipeline, um zwei oder mehr dieser Zahlen miteinander zu multiplizieren.
2 Zahlen multiplizieren
Hier ist ein Beispiel für die Multiplikation zweier Zahlen.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "result" : 2000 }
Multipliziere 3 Zahlen
Hier ist es wieder, außer dass wir dieses Mal alle drei Zahlen miteinander multiplizieren.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
Negative Werte
Die Zahlen können positiv oder negativ sein.
Angenommen, wir fügen unserer Sammlung das folgende Dokument hinzu:
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }
Lassen Sie uns nun die vorherigen Beispiele erneut ausführen und sehen, was passiert:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "result" : 2000 } { "a" : 1000, "b" : -2, "result" : -2000 }
Und hier ist es mit drei Zahlen:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 } { "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }
Wenn Sie eine negative Zahl mit einer positiven Zahl multiplizieren, ist das Produkt immer negativ. Aber wenn Sie zwei negative Zahlen oder zwei positive Zahlen multiplizieren, ist das Produkt immer positiv.
Fügen Sie Ihre eigene Nummer hinzu
Sie sind nicht unbedingt auf die Zahlen in den Dokumenten beschränkt. Sie können Ihre eigenen Zahlen verwenden, wenn Sie alle Felder mit einem festen Betrag multiplizieren müssen.
Beispiel:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } }
}
]
)
Ergebnis:
{ "result" : 15000 } { "result" : 15000 }