In MongoDB die $divide
Aggregations-Pipeline-Operator dividiert eine Zahl durch eine andere und gibt das Ergebnis zurück.
Um $divide
zu verwenden , übergeben Sie die Zahlen in einem Array. Die $divide
Der Operator dividiert die erste Zahl durch die zweite Zahl. Mit anderen Worten, die erste Zahl ist der Dividende und die zweite Zahl der Divisor.
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 }
Wir können den $divide
verwenden Operator innerhalb einer Aggregationspipeline, um eine dieser Zahlen durch die andere zu dividieren.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "result" : 500 }
Wenn wir b
dividieren wollen Feld durch den a
Feld, müssten wir sie austauschen.
Beispiel:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
Negative Zahlen
Angenommen, wir fügen unserer Sammlung das folgende Dokument hinzu:
{ "_id" : 2, "a" : 1000, "b" : -2 }
Dies schließt eine negative Zahl ein. Aber das ist kein Problem, denn eine negative Zahl ist immer noch eine Zahl, und wir können sicherlich jede Zahl durch eine negative Zahl teilen.
Beispiel:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
Hier wird es umgedreht, sodass wir eine negative Zahl durch eine positive Zahl dividieren:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Ergebnis:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
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 ein Feld durch einen festen Betrag dividieren müssen.
Beispiel:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
Ergebnis:
{ "result" : 5000 } { "result" : 5000 }