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 }