आपको जो चाहिए वह है $cond
एकत्रीकरण ढांचे के ऑपरेटर। आप जो चाहते हैं उसे पाने का एक तरीका यह होगा:
db.foo.aggregate([
{
$project: {
item: 1,
lessThan10: { // Set to 1 if value < 10
$cond: [ { $lt: ["$value", 10 ] }, 1, 0]
},
moreThan10: { // Set to 1 if value > 10
$cond: [ { $gt: [ "$value", 10 ] }, 1, 0]
}
}
},
{
$group: {
_id: "$item",
countSmaller: { $sum: "$lessThan10" },
countBigger: { $sum: "$moreThan10" }
}
}
])
नोट: मैंने मान लिया है value
स्ट्रिंग के बजाय संख्यात्मक के लिए।
आउटपुट:
{
"result" : [
{
"_id" : "xyz1",
"countSmaller" : 1,
"countBigger" : 0
},
{
"_id" : "abc1",
"countSmaller" : 2,
"countBigger" : 2
}
],
"ok" : 1
}