In MongoDB, il $multiply
l'operatore della pipeline di aggregazione moltiplica i numeri insieme e restituisce il risultato.
Per utilizzare il $multiply
operatore, passa i numeri all'operatore in una matrice.
Gli argomenti possono essere qualsiasi espressione valida, purché si risolvano in numeri.
Esempio
Supponiamo di avere una raccolta chiamata data
con il seguente documento:
{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }
Possiamo usare il $multiply
operatore all'interno di una pipeline di aggregazione per moltiplicare due o più di questi numeri insieme.
Moltiplica 2 numeri
Ecco un esempio di moltiplicazione di due numeri insieme.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "result" : 2000 }
Moltiplica 3 numeri
Eccolo di nuovo, tranne che questa volta moltiplichiamo tutti e tre i numeri insieme.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
Valori negativi
I numeri possono essere positivi o negativi.
Supponiamo di aggiungere il seguente documento alla nostra raccolta:
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }
Ora eseguiamo di nuovo gli esempi precedenti e vediamo cosa succede:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "result" : 2000 } { "a" : 1000, "b" : -2, "result" : -2000 }
Ed eccolo con tre numeri:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 } { "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }
Quando moltiplichi un numero negativo per un numero positivo, il prodotto è sempre negativo. Ma quando moltiplichi due numeri negativi o due numeri positivi, il prodotto è sempre positivo.
Aggiungi il tuo numero
Non sei necessariamente limitato ai soli numeri nel/i documento/i. Puoi utilizzare i tuoi numeri se devi moltiplicare tutti i campi per un importo fisso.
Esempio:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } }
}
]
)
Risultato:
{ "result" : 15000 } { "result" : 15000 }