Tôi đang sử dụng khuôn khổ MongoDB tập hợp và làm một số tính toán như hình dưới đâylàm tròn đến 2 chữ số thập phân sử dụng MongoDB hợp khuôn khổ
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]}
}
}
);
Tôi đang cố gắng tìm ra cách tốt nhất và đơn giản nhất để làm tròn kết quả của tôi là những gì đến 2 chữ số thập phân. Sau đây là kết quả của tôi
{
"result" : [
{
"_id" : {
"Region" : "East",
"Mth" : 201301
},
"ActSls" : 72,
"PlnSls" : 102,
"ActToPln" : 70.58823529411765
}
],
"ok" : 1
}
Tôi muốn "ActToPln" để hiển thị 70,59 thay vì "ActToPln": 70,58823529411765, trong các kết quả từ khuôn khổ aggegation riêng của mình. Tôi muốn tránh làm tròn trong đơn đăng ký của tôi
Bạn có thể vui lòng trợ giúp như vậy không.
Sau đây là tập dữ liệu tôi đã sử dụng.
{
"_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
}
Xin cảm ơn trước. Nandu
bạn nên cung cấp một số ví dụ hay dữ liệu của bạn và đơn giản hóa câu hỏi của bạn –
Tôi đã cập nhật câu hỏi và cũng cung cấp tập dữ liệu tôi đã sử dụng. Cảm ơn amezhenin. – user2552537
Tại sao không làm điều đó trên máy khách? Không có cách tự nhiên để làm điều này trong khung công tác tổng hợp. Bạn sẽ cần phải sử dụng bản đồ giảm để thực hiện một chức năng làm tròn. – WiredPrairie