MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB $divide

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 }