Definición
$trunc$trunctrunca un número a un entero o a un lugar decimal especificado.
Sintaxis
El operador $trunc tiene la siguiente sintaxis:
{ $trunc : [ <number>, <place> ] }
Campo | Tipo | Descripción |
|---|---|---|
| Número | |
| entero | Opcional Puede ser cualquier expresión válida que resuelva un número entero entre -20 y 100, exclusivo. Por ejemplo,
|
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.
Comportamiento
$trunc no redondea los datos truncados. Para redondear los valores de entrada a un lugar específico, usa la expresión $round.
Tipo de datos devueltos
El tipo de datos devuelto coincide con el tipo de datos de la expresión o valor ingresados.
null; NaN, y +/- Infinity
Si el argumento se resuelve a un valor de
nullo se refiere a un campo que falta,$truncdevuelvenull.Si el argumento se resuelve
NaNen,$truncNaNdevuelve.Si el argumento se resuelve en infinito negativo o positivo, devuelve infinito negativo o positivo
$truncrespectivamente.
Ejemplo | Resultados |
|---|---|
|
|
|
|
|
|
|
|
Ejemplo
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
valuetruncado 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
valuetruncado 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 }