我正在使用 mongodb 聚合框架并进行一些计算,如下所示
db.RptAgg.aggregate(
{$group: {
_id: {Region: "$RegionTxt", Mth: "$Month"},
ActSls: {$sum:"$ActSls"},
PlnSls: {$sum:"$PlnSls"}
}},
{$project: {
ActSls: 1,
PlnSls: 1,
ActToPln: {$cond: [
{$ne: ["$PlnSls", 0]},
{$multiply: [{$divide: ['$ActSls', '$PlnSls']}, 100]},
0
]}
}}
);
我试图找出将结果四舍五入到小数点后 2 位的最佳和最简单的方法。以下是我的结果
{
"result": [{
"_id": {
"Region": "East",
"Mth": 201301
},
"ActSls": 72,
"PlnSls": 102,
"ActToPln": 70.58823529411765
}],
"ok": 1
}
我希望 "ActToPln" 在聚合框架本身的结果中显示 70.59而不是"ActToPln" : 70.58823529411765。我想避免在我的应用程序中进行舍入
你能帮忙吗?
以下是我使用的数据集。
{
"_id" : ObjectId("51d67ef69557c507cb172572"),
"RegionTxt" : "East",
"Month" : 201301,
"Date" : "2013-01-01",
"ActSls" : 31,
"PlnSls" : 51
}
{
"_id" : ObjectId("51d67ef69557c507cb172573"),
"RegionTxt" : "East",
"Month" : 201301,
"Date" : "2013-01-02",
"ActSls" : 41,
"PlnSls" : 51
}
提前致谢。南都