该 $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 }
]