Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$trunc (agregação)

Nesta página

  • Definição
  • Sintaxe
  • Comportamento
  • Exemplo
$trunc

$trunc trunca um número para um número inteiro ou para uma casa decimal especificada.

O operador $trunc tem a seguinte sintaxe:

{ $trunc : [ <number>, <place> ] }
Campo
Tipo
Descrição
<number>
número

Pode ser qualquerexpressão válida que resolva um número. Especificamente, a expressão deve ser resolvida para um número inteiro, double, decimal ou long.

$trunc retorna um erro se a expressão for resolvida para um tipo de dados não numéricos.

<place>
inteiro

Opcional Pode ser qualquer expressão válida que resulte em um número inteiro entre -20 e 100, exclusive. Por exemplo, -20 < place < 100. O padrão é 0 se não for especificado.

  • Se <place> for resolvido em um número inteiro positivo, $trunc será truncado em <place> casas decimais.

    Por exemplo, $trunc : [1234.5678, 2] trunca para duas casas decimais e retorna 1234.56.

  • Se <place> resolver para um inteiro negativo, $trunc substitui <place> dígitos à esquerda do decimal por 0.

    Por exemplo, $trunc : [1234.5678, -2] substitui para dois dígitos restantes do decimal por 0 e retorna 1200.

  • Se o valor absoluto de <place> exceder o número de dígitos à esquerda do decimal, $trunc retornará 0.

    Por exemplo, $trunc : [ 1234.5678, -5] especifica o quinto dígito restante do decimal. Isto excede o número de dígitos restantes do decimal e retorna 0.

  • Se <place> resultar em 0, $trunc trunca todos os dígitos à direita do decimal e retorna o valor inteiro.

    Por exemplo, $trunc : [1234.5678, 0] gera 1234

A expressão <number> pode ser qualquer expressão válida, desde que seja resolvida como um número. Para mais informações sobre expressões, consulte Expressões.

$trunc não arredonda os dados truncados. Para arredondar valores de entrada para um local especificado, utilize a expressão $round .

O tipo de dados retornado corresponde ao tipo de dados da expressão ou valor de entrada.

  • Se o argumento for resolvido para um valor de null ou se referir a um campo ausente, $trunc retornará null.

  • Se o argumento se resolve em NaN, $trunc retorna NaN.

  • Se o argumento resolver para infinito negativo ou positivo, $trunc retornará infinito negativo ou positivo respectivamente.

Exemplo
Resultados
{ $trunc: [ NaN, 1] }
NaN
{ $trunc: [ null, 1] }
null
{ $trunc : [ Infinity, 1 ] }
Infinity
{ $trunc : [ -Infinity, 1 ] }
-Infinity

Crie uma coleção denominada samples com os seguintes documentos:

db.samples.insertMany(
[
{ _id: 1, value: 19.25 },
{ _id: 2, value: 28.73 },
{ _id: 3, value: 34.32 },
{ _id: 4, value: -45.34 }
]
)
  • A seguinte aggregation retorna value truncado para a primeira casa decimal:

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

    A operação retorna os seguintes resultados:

    { "_id" : 1, "truncatedValue" : 19.2 }
    { "_id" : 2, "truncatedValue" : 28.7 }
    { "_id" : 3, "truncatedValue" : 34.3 }
    { "_id" : 4, "truncatedValue" : -45.3 }
  • A seguinte aggregation retorna value truncado para o primeiro lugar:

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

    A operação retorna os seguintes resultados:

    { "_id" : 1, "truncatedValue" : 10 }
    { "_id" : 2, "truncatedValue" : 20 }
    { "_id" : 3, "truncatedValue" : 30 }
    { "_id" : 4, "truncatedValue" : -40 }
  • A seguinte aggregation retorna ''valor'' truncado para todo o inteiro:

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

    A operação retorna os seguintes resultados:

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

Voltar

$trim