Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$round (operador de expresión)

$round

$round redondea un número a un entero o a una posición decimal específica.

$round tiene la siguiente sintaxis:

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

<number>

Número

Puede ser cualquier expresión válida que se resuelva en un número. Específicamente, la expresión debe resolverse a un entero, double, 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 en un entero positivo, se redondea$round a <place> lugares decimales.

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

  • Si se <place> resuelve en un entero negativo, redondea usando el$round dígito <place> a la izquierda del punto 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 superior al número de dígitos a la izquierda del punto decimal, $round 0devuelve.

    Por ejemplo, el componente $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 punto decimal y devuelve 0.

  • Si se <place> resuelve 0 en, $round redondea usando el primer dígito a la derecha del punto decimal y devuelve un valor entero 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 muestra:

{_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.

Si imprimes un número de punto flotante de doble precisión 0.05 con 20 dígitos después del separador decimal, verás 0.05000000000000000278, que es ligeramente mayor que 0.05 y se redondea a 0.1.

MongoDB utiliza el estándar IEEE 754 para operaciones de coma flotante, y el comportamiento es coherente con dicho estándar.

Si necesita un número de coma flotante para una aplicación que requiere alta precisión, considere el Decimal128 valor. Para más detalles, consulte BSON.Decimal.128

Si necesitas almacenar un valor en moneda, considera un número entero utilizando la unidad monetaria de denominación más baja. Por ejemplo, utilice un número entero con céntimos o centavos en lugar de un número de punto flotante.

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 se refiere a un campo que no existe, $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 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 más cercano:

    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 }
Califique esta página