W MongoDB $divide
Operator potoku agregacji dzieli jedną liczbę przez drugą i zwraca wynik.
Aby użyć $divide
, przekaż liczby w tablicy. $divide
operator podzieli pierwszą liczbę przez drugą liczbę. Innymi słowy, pierwsza liczba to dzielna, a druga liczba to dzielnik.
Argumenty mogą być dowolnymi poprawnymi wyrażeniami, o ile są rozstrzygane na liczby.
Przykład
Załóżmy, że mamy kolekcję o nazwie data
z następującym dokumentem:
{ "_id" : 1, "a" : 1000, "b" : 2 }
Możemy użyć $divide
operatora w potoku agregacji, aby podzielić jedną z tych liczb przez drugą.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Wynik:
{ "a" : 1000, "b" : 2, "result" : 500 }
Jeśli chcemy podzielić b
pole przy a
pola, musielibyśmy je zamienić.
Przykład:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Wynik:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
Liczby ujemne
Załóżmy, że do naszej kolekcji dodamy następujący dokument:
{ "_id" : 2, "a" : 1000, "b" : -2 }
Obejmuje to liczbę ujemną. Ale to nie problem, ponieważ liczba ujemna jest nadal liczbą i z pewnością możemy podzielić dowolną liczbę przez liczbę ujemną.
Przykład:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Wynik:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
Tutaj jest przełączane, tak że liczbę ujemną dzielimy przez liczbę dodatnią:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Wynik:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
Dodaj własny numer
Niekoniecznie jesteś ograniczony tylko do liczb w dokumencie/ach. Możesz użyć własnych liczb, jeśli chcesz podzielić pole przez ustaloną kwotę.
Przykład:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
Wynik:
{ "result" : 5000 } { "result" : 5000 }