In MongoDB, il $divide
l'operatore della pipeline di aggregazione divide un numero per un altro e restituisce il risultato.
Per usare $divide
, passa i numeri in una matrice. Il $divide
l'operatore dividerà il primo numero per il secondo. In altre parole, il primo numero è il dividendo e il secondo numero è il divisore.
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 }
Possiamo usare il $divide
operatore all'interno di una pipeline di aggregazione per dividere uno di questi numeri per l'altro.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "result" : 500 }
Se vogliamo dividere b
campo con il a
campo, dovremmo scambiarli.
Esempio:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
Numeri negativi
Supponiamo di aggiungere il seguente documento alla nostra raccolta:
{ "_id" : 2, "a" : 1000, "b" : -2 }
Questo include un numero negativo. Ma non è un problema, perché un numero negativo è pur sempre un numero e possiamo certamente dividere qualsiasi numero per un numero negativo.
Esempio:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
Qui è invertito, in modo che dividiamo un numero negativo per un numero positivo:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Risultato:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
Aggiungi il tuo numero
Non sei necessariamente limitato ai soli numeri nel/i documento/i. Puoi utilizzare i tuoi numeri se devi dividere un campo per un importo fisso.
Esempio:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
Risultato:
{ "result" : 5000 } { "result" : 5000 }