sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB $dividir

En MongoDB, el $divide El operador de tubería de agregación divide un número por otro y devuelve el resultado.

Para usar $divide , pase los números en una matriz. La $divide operador dividirá el primer número por el segundo número. En otras palabras, el primer número es el dividendo y el segundo número es el divisor.

Los argumentos pueden ser cualquier expresión válida siempre que se resuelvan en números.

Ejemplo

Supongamos que tenemos una colección llamada data con el siguiente documento:

{ "_id" : 1, "a" : 1000, "b" : 2 }

Podemos usar el $divide operador dentro de una canalización de agregación para dividir uno de esos números por el otro.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $divide: [ "$a", "$b" ] } } 
         }
   ]
)

Resultado:

{ "a" : 1000, "b" : 2, "result" : 500 }

Si queremos dividir b campo por el a campo, tendríamos que intercambiarlos.

Ejemplo:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $divide: [ "$b", "$a" ] } } 
         }
   ]
)

Resultado:

{ "a" : 1000, "b" : 2, "result" : 0.002 }

Números negativos

Supongamos que agregamos el siguiente documento a nuestra colección:

{ "_id" : 2, "a" : 1000, "b" : -2 }

Esto incluye un número negativo. Pero eso no es un problema, porque un número negativo sigue siendo un número, y ciertamente podemos dividir cualquier número entre un número negativo.

Ejemplo:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $divide: [ "$a", "$b" ] } } 
         }
   ]
)

Resultado:

{ "a" : 1000, "b" : 2, "result" : 500 }
{ "a" : 1000, "b" : -2, "result" : -500 }

Aquí está invertido, de modo que dividimos un número negativo por un número positivo:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $divide: [ "$b", "$a" ] } } 
         }
   ]
)

Resultado:

{ "a" : 1000, "b" : 2, "result" : 0.002 }
{ "a" : 1000, "b" : -2, "result" : -0.002 }

Agregue su propio número

No está necesariamente restringido a solo los números en el/los documento/s. Puede usar sus propios números si necesita dividir un campo por una cantidad fija.

Ejemplo:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        result: { $multiply: [ "$a", 5 ] } } 
         }
   ]
)

Resultado:

{ "result" : 5000 }
{ "result" : 5000 }