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

$trunc (agregación)

$trunc

$trunc trunca un número a un entero o a un lugar decimal especificado.

El operador $trunc tiene la siguiente sintaxis:

{ $trunc : [ <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.

$trunc 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 resuelva un número entero entre -20 y 100, exclusivo. Por ejemplo, -20 < place < 100. Por defecto, se establece en 0 si no se especifica.

  • Si <place> se convierte en un número entero positivo, $trunc se trunca a <place> decimales.

    Por ejemplo, $trunc : [1234.5678, 2] se trunca a dos decimales y devuelve 1234.56.

  • Si <place> es un entero negativo, $trunc reemplaza <place> dígitos a la izquierda del punto decimal con 0.

    Por ejemplo, $trunc : [1234.5678, -2] reemplaza a dos dígitos a la izquierda del decimal con 0 y devuelve 1200.

  • Si el valor absoluto de <place> excede el número de dígitos a la izquierda del decimal, $trunc 0devuelve.

    Por ejemplo, $trunc : [ 1234.5678, -5] especifica el quinto dígito a la izquierda del decimal. Esto excede el número de dígitos a la izquierda del decimal y devuelve 0.

  • Si se <place> resuelve 0 en, trunca todos los dígitos a la derecha del decimal y devuelve el valor entero$trunc completo.

    Por ejemplo, $trunc : [1234.5678, 0] regresa 1234

La expresión <number> puede ser cualquier expresión válida siempre que se resuelva en un número. Para obtener más información sobre las expresiones, consulte Expresiones.

$trunc no redondea los datos truncados. Para redondear los valores de entrada a un lugar específico, usa la expresión $round.

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

  • Si el argumento se resuelve a un valor de null o se refiere a un campo que falta, $trunc devuelve null.

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

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

Ejemplo
Resultados

{ $trunc: [ NaN, 1] }

NaN

{ $trunc: [ null, 1] }

null

{ $trunc : [ Infinity, 1 ] }

Infinity

{ $trunc : [ -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.34 }
]
)
  • La siguiente agregación devuelve value truncado al primer decimal:

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

    La operación devuelve los siguientes resultados:

    { "_id" : 1, "truncatedValue" : 19.2 }
    { "_id" : 2, "truncatedValue" : 28.7 }
    { "_id" : 3, "truncatedValue" : 34.3 }
    { "_id" : 4, "truncatedValue" : -45.3 }
  • La siguiente agregación devuelve value truncado a la primera posición:

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

    La operación devuelve los siguientes resultados:

    { "_id" : 1, "truncatedValue" : 10 }
    { "_id" : 2, "truncatedValue" : 20 }
    { "_id" : 3, "truncatedValue" : 30 }
    { "_id" : 4, "truncatedValue" : -40 }
  • La siguiente agregación devuelve``valor`` truncado al número entero completo:

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

    La operación devuelve los siguientes resultados:

    { "_id" : 1, "truncatedValue" : 19 }
    { "_id" : 2, "truncatedValue" : 28 }
    { "_id" : 3, "truncatedValue" : 34 }
    { "_id" : 4, "truncatedValue" : -45 }

Volver

$trim

En esta página