$trunc

$trunc 运算符用于将数字截断为指定的小数位。 在需要限制数值数据的精度(例如财务计算、报告或数据规范化)的情况下,此运算符特别有用。

语法

{ $trunc: [ <number>, <place> ] }

参数

参数 说明
<number> 要截断的数字。
<place> 要截断到的十进制位置。 正值截断小数点右侧,负值截断小数点左侧。

示例

截断纬度

此示例演示如何使用 $trunc 运算符将字段中的 location 纬度值截断为 2 个小数位数。

db.collection.aggregate([
  {
    $project: {
      truncatedLat: { $trunc: ["$location.lat", 2] }
    }
  }
])

这会将 lat 值截断为两个小数位数:

[
  { "_id": 1, "location": { "lat": 37.774929 }, "truncatedLat": 37.77 },
  { "_id": 2, "location": { "lat": 40.712776 }, "truncatedLat": 40.71 }
]

截断销售

在此示例中,我们将字段中的值fullSales截断sales为最接近的整数。

db.collection.aggregate([
  {
    $project: {
      truncatedSales: { $trunc: ["$sales.fullSales", 0] }
    }
  }
])

这会通过删除小数部分,将 fullSales 截断为最接近的整数:

[
  { "_id": 3, "sales": { "fullSales": 1234.56 }, "truncatedSales": 1234 },
  { "_id": 4, "sales": { "fullSales": 9876.99 }, "truncatedSales": 9876 }
]