I am using the mongodb aggregation framework and doing some calculations as shown below
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
]}
}}
);
I am trying to figure out what is the best and easiest way to round my results to 2 decimal places. Following is my result
{
"result": [{
"_id": {
"Region": "East",
"Mth": 201301
},
"ActSls": 72,
"PlnSls": 102,
"ActToPln": 70.58823529411765
}],
"ok": 1
}
I want "ActToPln" to show 70.59 instead of "ActToPln" : 70.58823529411765, in the results from aggegation framework itself. I want to avoid doing the rounding in my application
Can you please help with the same.
Following is the dataset i used.
{
"_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
}
Thanks in advance. Nandu