Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Operadores de pipeline de agregación

$round (agregación)

$round

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

$round tiene la siguiente sintaxis:

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

<number>

Número

Puede ser cualquier valor válido expresión que resuelve un número. Específicamente, la expresión debe resolverse a un entero, doble, decimal o long.

$round devuelve un error si la expresión da como resultado un tipo de dato no numérico.

<place>

entero

Opcional Puede ser cualquier expresión válida que se resuelva en un número entero entre -20 y 100, exclusivo. por ejemplo, -20 < place < 100. Por defecto es 0 si no se especifica.

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

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

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

    Por ejemplo, $round : [1234.5678, -2] utiliza el segundo dígito a la izquierda del punto 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 que más se acerca al valor par 10, mientras que los valores 11.5 y 12.5 son los que más se acercan al valor par 12. Redondear al valor par más cercano respalda una distribución más uniforme de datos redondeados que hacerlo siempre hacia arriba o hacia abajo.

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

  • 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 como NaN, $round devuelve NaN.

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

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 usando 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