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 }