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

MongoDB $divide


No MongoDB, o $divide operador de pipeline de agregação divide um número por outro e retorna o resultado.

Para usar $divide , passe os números em uma matriz. O $divide operador irá dividir o primeiro número pelo segundo número. Em outras palavras, o primeiro número é o dividendo e o segundo número é o divisor.

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 }

Podemos usar o $divide operador dentro de um pipeline de agregação para dividir um desses números pelo outro.
db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $divide: [ "$a", "$b" ] } } 
         }
   ]
)

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

Se quisermos dividir b campo pelo a campo, precisaríamos trocá-los.

Exemplo:
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


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

Isso inclui um número negativo. Mas isso não é um problema, porque um número negativo ainda é um número, e certamente podemos dividir qualquer número por um número negativo.

Exemplo:
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 }

Aqui é trocado, de modo que dividimos um número negativo por um 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 }

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 dividir um campo por um valor fixo.

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

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