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