I MongoDB, $divide
aggregeringspipelineoperatör delar ett tal med ett annat och returnerar resultatet.
För att använda $divide
, skicka siffrorna i en array. $divide
operatören delar det första talet med det andra talet. Med andra ord, den första siffran är utdelningen och den andra siffran är divisorn.
Argumenten kan vara vilket giltigt uttryck som helst så länge de löser sig till siffror.
Exempel
Anta att vi har en samling som heter data
med följande dokument:
{ "_id" : 1, "a" : 1000, "b" : 2 }
Vi kan använda $divide
operatör inom en aggregeringspipeline för att dividera ett av dessa tal med det andra.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "result" : 500 }
Om vi vill dela b
fältet med a
fältet skulle vi behöva byta runt dem.
Exempel:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
Negativa tal
Anta att vi lägger till följande dokument i vår samling:
{ "_id" : 2, "a" : 1000, "b" : -2 }
Detta inkluderar ett negativt tal. Men det är inget problem, eftersom ett negativt tal fortfarande är ett tal, och vi kan säkert dividera vilket tal som helst med ett negativt tal.
Exempel:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
Här växlas det runt, så att vi dividerar ett negativt tal med ett positivt tal:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
Lägg till ditt eget nummer
Du är inte nödvändigtvis begränsad till bara siffrorna i dokumentet/dokumenten. Du kan använda dina egna nummer om du behöver dela ett fält med ett fast belopp.
Exempel:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
Resultat:
{ "result" : 5000 } { "result" : 5000 }