Docs Menu
Docs Home
/ /
Operadores de tuberías de agregación

$round (agregación)

$round

$round redondea un número a un entero o a un decimal especificado.

$round tiene la siguiente sintaxis:

{ $round : [ <number>, <place> ] }
Campo
Tipo
Descripción

<number>

Número

Puede ser cualquier válido Expresión que se resuelve en un número. Específicamente, la expresión debe resolverse en un entero, un doble, decimal longo.

$round devuelve un error si la expresión se resuelve en un tipo de datos no numérico.

<place>

entero

Opcional Puede ser cualquier expresión válida que se resuelva en un entero entre -20 y,100 -20 < place < 100excluyendo, por 0 ejemplo,. El valor predeterminado es si no se especifica.

  • Si <place> se resuelve en un entero positivo, se redondea$round a <place> decimales.

    Por ejemplo, $round : [1234.5678, 2] se redondea a dos decimales y devuelve 1234.57.

  • Si se <place> resuelve en un entero negativo, se redondea utilizando el$round dígito <place> a la izquierda del decimal.

    Por ejemplo, $round : [1234.5678, -2] utiliza el 2º dígito a la izquierda del decimal (3) y devuelve 1200.

    Si el valor absoluto de es <place> igual o mayor que el número de dígitos a la izquierda del decimal, $round 0devuelve.

    Por ejemplo, $round : [ 1234.5678, -4] especifica el cuarto dígito a la izquierda del decimal. Esto equivale al número de dígitos a la izquierda del decimal y devuelve 0.

  • Si se <place> resuelve 0 en, redondea utilizando el primer dígito a la derecha del decimal y devuelve un valor entero$round redondeado.

    Por ejemplo, $round : [1234.5678, 0] devuelve 1235.

Al redondear un valor de,5 se$round redondea al valor par más cercano. Por ejemplo, considere los siguientes documentos de ejemplo:

{_id : 1, "value" : 10.5},
{_id : 2, "value" : 11.5},
{_id : 3, "value" : 12.5},
{_id : 4, "value" : 13.5}

$round : [ "$value", 0] devuelve lo siguiente:

{_id : 1, "value" : 10},
{_id : 2, "value" : 12},
{_id : 3, "value" : 12},
{_id : 4, "value" : 14}

El valor 10.5 es el más cercano al valor par 10, mientras que los valores 11.5 y 12.5 son los más cercanos al valor par 12. Redondear al valor par más cercano facilita una distribución más uniforme de los datos redondeados que redondear siempre hacia arriba o hacia abajo.

El tipo de datos devuelto coincide con el tipo de datos de la expresión o valor de entrada.

  • Si el primer argumento se resuelve en un valor de null o hace referencia a un campo que falta, $round nulldevuelve.

  • Si el primer argumento se resuelve NaN en, $round NaNdevuelve.

  • Si el primer argumento se resuelve en infinito negativo o positivo, devuelve infinito negativo o positivo$round respectivamente.

Ejemplo
Resultados

{ $round: [ NaN, 1] }

NaN

{ $round: [ null, 1] }

null

{ $round : [ Infinity, 1 ] }

Infinity

{ $round : [ -Infinity, 1 ] }

-Infinity

Cree una colección llamada samples con los siguientes documentos:

db.samples.insertMany(
[
{ _id: 1, value: 19.25 },
{ _id: 2, value: 28.73 },
{ _id: 3, value: 34.32 },
{ _id: 4, value: -45.39 }
]
)
  • La siguiente agregación devuelve value redondeado al primer decimal:

    db.samples.aggregate([
    { $project: { roundedValue: { $round: [ "$value", 1 ] } } }
    ])

    La operación devuelve los siguientes resultados:

    { "_id" : 1, "roundedValue" : 19.2 }
    { "_id" : 2, "roundedValue" : 28.7 }
    { "_id" : 3, "roundedValue" : 34.3 }
    { "_id" : 4, "roundedValue" : -45.4 }
  • La siguiente agregación devuelve value redondeado utilizando el primer dígito a la izquierda del decimal:

    db.samples.aggregate([
    { $project: { roundedValue: { $round: [ "$value", -1 ] } } }
    ])

    La operación devuelve los siguientes resultados:

    { "_id" : 1, "roundedValue" : 10 }
    { "_id" : 2, "roundedValue" : 20 }
    { "_id" : 3, "roundedValue" : 30 }
    { "_id" : 4, "roundedValue" : -50 }
  • La siguiente agregación devuelve value redondeado al entero completo:

    db.samples.aggregate([
    { $project: { roundedValue: { $round: [ "$value", 0 ] } } }
    ])

    La operación devuelve los siguientes resultados:

    { "_id" : 1, "roundedValue" : 19 }
    { "_id" : 2, "roundedValue" : 29 }
    { "_id" : 3, "roundedValue" : 34 }
    { "_id" : 4, "roundedValue" : -45 }

Volver

$reverseArray

En esta página