Я использую структуру агрегации MongoDB и делать некоторые вычисления, как показано нижеОкругление до 2 знаков после запятой, используя структуру агрегации 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, в результатах самого aggegation рамок. Я хочу, чтобы избежать округления в моей заявке
Помогите пожалуйста с этим.
Ниже приведен набор данных, которые я использовал.
{
"_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
}
Заранее спасибо. Nandu
вы должны привести несколько примеров или данных и упростить вопрос –
я обновил вопрос, а также при условии, что набор данных я использовал. Спасибо amezhenin. – user2552537
Почему бы не сделать это на клиенте? В плане агрегации нет естественного способа сделать это. Для выполнения функции округления вам необходимо использовать отображение карты. – WiredPrairie