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 }