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 se resuelva en un entero entre -20 y,100
|
La <number> expresión puede ser cualquier expresión válida siempre que se resuelva en un número. Para más información sobre expresiones, consulte Expresiones.
Comportamiento
$trunc no redondea los datos truncados. Para redondear los valores de entrada a un valor específico, utilice la $round expresión.
Tipo de datos devueltos
El tipo de datos devuelto coincide con el tipo de datos de la expresión o valor de entrada.
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 al primer lugar: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 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 }