MongoDB $trunc 运算符

2024 年 9 月 6 日 | 3 分钟阅读

MongoDB 中的 $trunc 运算符是什么?

MongoDB 提供了各种算术表达式运算符。 $trunc 运算符是其中一个运算符。 $trunc 运算符用于将数字截断为整数或指定的十进制位。

$trunc 运算符的语法

重要提示

  1. < number > 可以是任何有效的表达式,直到它解析为一个数字。 <number> 的值必须是整数、双精度浮点数、十进制或长整数。如果 <number> 不是非数字数据类型,则会返回一个错误。
  2. <place> 可以是任何有效的可选表达式,解析为介于 -20 和 100 之间的整数。
条件示例输出
如果解析为正整数,则截断为小数位数的值。$trunc: [7896.12569, 3]7896.125
如果解析为负整数,它将小数位左侧的数字替换为 0。$trunc: [7896.12569, -3]7000
$trunc: [7896.12569, -5]0
如果解析为 0,它将截断小数点右侧的所有数字,并返回整数值。$trunc: [7896.12569, 0]7896

示例

假设我们有一个包含以下文档的产品集合。

示例 1

在此示例中,我们使用 $trunc 运算符截断数据字段中的值。

输出

{
    "_id" : 1, 
    "data" : 11.25,
    "value" : 11
}
{
    "_id" : 2, 
    "data" : 10.32,	
    "value" : 10
}
{
    "_id" : 3, 
    "data" : 15.97,	
    "value" : 15
}
{
    "_id" : 4, 
    "data" : -12.3,
    "value" : -12
}
{
    "_id" : 5, 
    "data" : 20.6,
    "value" : 20
}
{
    "_id" : 6, 
    "data" : 5,
    "value" : 5
}
{
    "_id" : 7, 
    "data" : -1,
    "value" : -1
}

示例 2:指定小数位数截断

在此示例中,我们使用 $trunc 运算符截断数据字段中的值。

输出

{
    "_id" : 1, 
    "data" : 11.25,
    "value" : 11.2
}
{
    "_id" : 2, 
    "data" : 10.32,	
    "value" : 10.3
}
{
    "_id" : 3, 
    "data" : 15.97,	
    "value" : 15.9
}
{
    "_id" : 4, 
    "data" : -12.3,
    "value" : -12.3
}
{
    "_id" : 5, 
    "data" : 20.6,
    "value" : 20.6
}
{
    "_id" : 6, 
    "data" : 5,
    "value" : 5
}
{
    "_id" : 7, 
    "data" : -1,
    "value" : -1
}

假设我们将以下文档添加到我们的集合中

{
        {
         "_id" : 8, 
         "name" : "charge",
         "data" : 8611.1325
        }
        {
         "_id" : 9, 
         "name" : "pen",
         "data" : 1856.5632	
        }
        {
         "_id" : 10, 
         "name" : "chart",
         "data" : 5785.1397	
        }
        {
         "_id" : 11, 
         "name" : "glass",
         "data" :  2312.3012
        }
}

示例 3:负小数位数

在此示例中,我们使用 $trunc 运算符截断数据字段中的值。

输出

{
    "_id" : 8, 
    "data" : 8611.1325,
    "value_1" : 8610,
    "value_2" : 8600,
    "value_3" : 8000,
    "value_4" : 0
}
{
    "_id" : 9, 
    "data" : 1856.5632,	
    "value_1" : 1850,
    "value_2" : 1800,
    "value_3" : 1000,
    "value_4" : 0
}
{
    "_id" : 10, 
    "data" : 5785.1397,	
    "value_1" : 5780,
    "value_2" : 5700,
    "value_3" : 5000,
    "value_4" : 0
}
{
    "_id" : 11, 
    "data" :  2312.3012,
    "value_1" : 2310,
    "value_2" : 2300,
    "value_3" : 2000,
    "value_4" : 0
}