MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $multiply


No MongoDB, o $multiply operador de pipeline de agregação multiplica os números e retorna o resultado.

Para usar o $multiply operador, passe os números para o operador em uma matriz.

Os argumentos podem ser qualquer expressão válida, desde que resolvam para números.

Exemplo


Suponha que tenhamos uma coleção chamada data com o seguinte documento:
{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }

Podemos usar o $multiply operador dentro de um pipeline de agregação para multiplicar dois ou mais desses números juntos.

Multiplicar 2 números


Aqui está um exemplo de multiplicação de dois 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


Aqui está novamente, exceto que desta vez nós multiplicamos todos os três números juntos.
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


Os números podem ser positivos ou negativos.

Suponha que adicionamos o seguinte documento à nossa coleção:
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }

Agora vamos executar os exemplos anteriores novamente e ver o que acontece:
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 }

E aqui está com três 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 }

Quando você multiplica um número negativo por um número positivo, o produto é sempre negativo. Mas quando você multiplica dois números negativos ou dois números positivos, o produto é sempre positivo.

Adicione seu próprio número


Você não está necessariamente restrito apenas aos números no(s) documento(s). Você pode usar seus próprios números se precisar multiplicar todos os campos por um valor fixo.

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

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