MongoDB $round 运算符介绍

$round 是 MongoDB 的一个聚合运算符,可以对一个数字字段进行四舍五入操作。它可以用于聚合管道中,将指定的数字字段四舍五入到指定的位数,然后输出结果。

语法

$round 运算符的语法如下:

{ $round: { <number>, <place> } }

其中,<number>表示要进行四舍五入的数字字段,可以是数字或者引用字段的表达式;<place>表示要保留的小数位数,可以是数字或者引用小数位数的表达式。

使用场景

$round 运算符通常用于需要保留指定位数小数的场景,例如货币计算或者精度要求较高的科学计算等。

示例

示例数据

假设我们有一个名为sales的集合,其中包含以下数据:

{ _id: 1, product: "A", price: 12.3456 }
{ _id: 2, product: "B", price: 23.4567 }
{ _id: 3, product: "C", price: 34.5678 }

示例 1:对数字进行四舍五入

假设我们想将price字段保留两位小数,可以使用以下聚合管道:

db.sales.aggregate([
  {
    $project: {
      _id: 0,
      product: 1,
      rounded_price: {
        $round: ["$price", 2]
      }
    }
  }
])

上述聚合管道中,使用 $project_id字段排除,保留product字段和rounded_price字段,其中rounded_price字段使用 $round 运算符将price字段保留两位小数。

示例 2:使用表达式引用小数位数

假设我们想将price字段保留三位小数,但是小数位数保存在另一个字段decimal中,可以使用以下聚合管道:

db.sales.aggregate([
  {
    $project: {
      _id: 0,
      product: 1,
      rounded_price: {
        $round: ["$price", "$decimal"]
      }
    }
  }
])

上述聚合管道中,使用 $project_id 字段排除,保留 product 字段和 rounded_price 字段,其中 rounded_price 字段使用 $round 运算符将 price 字段保留 decimal 字段指定的小数位数。

结论

$round 运算符是 MongoDB 的一个聚合运算符,可以对数字进行四舍五入操作,并保留指定的小数位数。它适用于需要保留指定位数小数的场景,例如货币计算或者精度要求较高的场景。