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

MongoDB $multiplicar

En MongoDB, el $multiply El operador de canalización de agregación multiplica los números y devuelve el resultado.

Para usar el $multiply operador, pasa los números al operador en una matriz.

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, "c" : 3 }

Podemos usar el $multiply operador dentro de una canalización de agregación para multiplicar dos o más de esos números juntos.

Multiplica 2 Números

Este es un ejemplo de cómo multiplicar dos números.

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

Resultado:

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

Multiplicar 3 Números

Aquí está de nuevo, excepto que esta vez multiplicamos los tres números.

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

Resultado:

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }

Valores negativos

Los números pueden ser positivos o negativos.

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

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

Ahora ejecutemos los ejemplos anteriores nuevamente y veamos qué sucede:

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

Resultado:

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

Y aquí está con tres números:

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

Resultado:

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
{ "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }

Cuando multiplicas un número negativo por un número positivo, el producto siempre es negativo. Pero cuando multiplicas dos números negativos o dos números positivos, el producto siempre es positivo.

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 multiplicar todos los campos por una cantidad fija.

Ejemplo:

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

Resultado:

{ "result" : 15000 }
{ "result" : 15000 }