MongoDB $round 运算符

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

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

MongoDB 提供了各种算术表达式运算符。$round 运算符是其中一个运算符。此运算符用于将数字四舍五入到整数或指定的十进制位。

$round 运算符的语法

重要提示

  1. < number > 可以是任何有效的表达式,直到它解析为数字。<number> 的值必须是整数、双精度、十进制或长整型。如果 <number> 不是非数值数据类型,则返回错误。
  2. <place> 可以是任何有效的可选表达式,它解析为 -20 到 100 之间的整数。以下是 <place> 字段的条件
条件示例输出
如果 <place> 解析为正整数,则将小数位的值四舍五入。$round: [7896.1479, 3]7896.15
如果 <place> 解析为负整数,则将小数点左侧的 <place> 位四舍五入。$round: [7843.1479, -2]7800
如果 < place > 的绝对值等于或大于小数点左侧的位数,则返回 0。$round: [7875.1479, -5]0
如果 <place> 解析为 0,则将小数点右侧的第一位四舍五入并返回四舍五入的整数值。$round: [7894.9879, 0]7894

示例

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

示例 1

在此示例中,我们使用 $round 运算符对数据字段中的值进行四舍五入。

输出

{
    "_id" : 1, 
    "data" : 11.29,
    "value" : 11
}
{
    "_id" : 2, 
    "data" : 10.32,	
    "value" : 10
}
{
    "_id" : 3, 
    "data" : 15.97,	
    "value" : 16
}
{
    "_id" : 4, 
    "data" : -12.38,
    "value" : -12
}
{
    "_id" : 5, 
    "data" : 20.88,
    "value" : 21
}
{
    "_id" : 6, 
    "data" : 5,
    "value" : 5
}
{
    "_id" : 7, 
    "data" : -1,
    "value" : -1
}

示例 2:指定小数位数

我们可以使用第二个参数来指定将数字四舍五入到多少位小数。在此示例中,我们使用 $round 运算符对数据字段中的值进行四舍五入。

输出

{
    "_id" : 1, 
    "data" : 11.29,
    "value" : 11.3
}
{
    "_id" : 2, 
    "data" : 10.32,	
    "value" : 10.3
}
{
    "_id" : 3, 
    "data" : 15.97,	
    "value" : 16
}
{
    "_id" : 4, 
    "data" : -12.38,
    "value" : -12.4
}
{
    "_id" : 5, 
    "data" : 20.88,
    "value" : 20.9
}
{
    "_id" : 6, 
    "data" : 5,
    "value" : 5
}
{
    "_id" : 7, 
    "data" : -1,
    "value" : -1
}

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

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

示例 3:负小数位数

在此示例中,我们使用 $round 运算符对具有各种负小数位数值的数据字段的值进行四舍五入。

输出

{
    "_id" : 8, 
    "data" : 8611.1325,
    "value_1" : 8610,
    "value_2" : 8600
}
{
    "_id" : 9, 
    "data" : 1843.5632,	
    "value_1" : 1840,
    "value_2" : 1800
}
{
    "_id" : 10, 
    "data" : 5714.1397,	
    "value_1" : 5710,
    "value_2" : 5700
}
{
    "_id" : 11, 
    "data" :  2312.3012,
    "value_1" : 2310,
    "value_2" : 2300,
}

示例 4:<Place> 值为零

当 <place> 字段的值为 0 时,$round 运算符将小数点右侧的第一位四舍五入并返回四舍五入的值。在此示例中,我们使用 $round 运算符对数据字段中的值进行四舍五入。

输出

{
    "_id" : 1, 
    "data" : 11.29,
    "value" : 11
}
{
    "_id" : 2, 
    "data" : 10.32,	
    "value" : 10
}
{
    "_id" : 3, 
    "data" : 15.97,	
    "value" : 16
}
{
    "_id" : 4, 
    "data" : -12.38,
    "value" : -12
}
{
    "_id" : 5, 
    "data" : 20.88,
    "value" : 21
}
{
    "_id" : 6, 
    "data" : 5,
    "value" : 5
}
{
    "_id" : 7, 
    "data" : -1,
    "value" : -1
}
{
    "_id" : 8, 
    "data" : 8611.1325,
    "value" : 8611     
}
{
    "_id" : 9, 
    "data" : 1843.5632,	
    "value" : 1843     
}
{
    "_id" : 10, 
    "data" : 5714.1397,	
    "value" : 5714    	
}
{
    "_id" : 11, 
    "data" :  2312.3012,	
    "value" : 2312   
}