I MongoDB, $multiply
aggregeringspipeline-operatör multiplicerar siffror och returnerar resultatet.
För att använda $multiply
operatör, skicka numren till operatören i en array.
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, "c" : 3 }
Vi kan använda $multiply
operatör inom en aggregeringspipeline för att multiplicera två eller flera av dessa tal tillsammans.
Multiplicera 2 nummer
Här är ett exempel på att multiplicera två tal tillsammans.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "result" : 2000 }
Multiplicera 3 siffror
Här är det igen, förutom den här gången multiplicerar vi alla tre talen tillsammans.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
Negativa värden
Siffrorna kan vara positiva eller negativa.
Anta att vi lägger till följande dokument i vår samling:
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }
Låt oss nu köra de tidigare exemplen igen och se vad som händer:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "result" : 2000 } { "a" : 1000, "b" : -2, "result" : -2000 }
Och här är den med tre siffror:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Resultat:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 } { "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }
När du multiplicerar ett negativt tal med ett positivt tal är produkten alltid negativ. Men när du multiplicerar två negativa tal eller två positiva tal är produkten alltid positiv.
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 siffror om du behöver multiplicera alla fält med ett fast belopp.
Exempel:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } }
}
]
)
Resultat:
{ "result" : 15000 } { "result" : 15000 }