कोई $round
नहीं है ऑपरेटर लेकिन आप इसे एकत्रीकरण ढांचे में कर सकते हैं - इसे विशिष्ट क्रम में करने से आमतौर पर फ्लोटिंग पॉइंट सटीक मुद्दों से बचना होगा।
> db.a.save({x:1.23456789})
> db.a.save({x:9.87654321})
> db.a.aggregate([{$project:{ _id:0,
y:{$divide:[
{$subtract:[
{$multiply:['$x',100]},
{$mod:[{$multiply:['$x',100]}, 1]}
]},
100]}
}}])
{ "y" : 1.23 }
{ "y" : 9.87 }
समस्या में मौजूदा पाइपलाइन को देखते हुए, प्रतिस्थापित करें:
{$multiply:[{$divide: ['$ActSls', '$PlnSls']},100]}
के साथ
{$divide:[
{$subtract:[
{$multiply:[
{$divide: ['$ActSls','$PlnSls']},
10000
]},
{$mod:[
{$multiply:[{$divide: ['$ActSls','$PlnSls']}, 10000 ]},
1]}
]},
100
]}
आपके नमूना डेटा बिंदुओं के साथ यह परिणाम है:
{ "ActSls" : 31, "PlnSls" : 51, "ActToPln" : 60.78 }
{ "ActSls" : 41, "PlnSls" : 51, "ActToPln" : 80.39 }
{ "ActSls" : 72, "PlnSls" : 102, "ActToPln" : 70.58 }