Может быть ниже пример, полезный для вас.
Допустим, у вас есть следующие примеры данных.
db.sample.insert([
{
"_id" : 27001,
"assigned_to" : "abc@xyz.com",
"priority" : "High"
}
,{
"_id" : 27002,
"assigned_to" : "jkdj@xyz.com",
"priority" : "Low"
},
{
"_id" : 27003,
"assigned_to" : "abc@xyz.com",
"priority" : "High"
}
]);
Используйте приведенный ниже агрегированный запрос, чтобы получить
1. Общее количество
2.Count, где assigend_to - «abc@xyz.com»
3.Count, где приоритет - «High»
db.sample.aggregate({$group:{
_id: 0,total:{$sum:1},
'assigned_to' : { $sum : { $cond: [ { $eq: [ '$assigned_to' , 'abc@xyz.com' ] }, 1, 0 ] } },
'hight_priority' : { $sum : { $cond: [ { $eq: [ '$priority' , 'High' ] }, 1, 0 ] } }
}
}
);
И вы получите ожидаемый результат
{
"result" : [
{
"_id" : 0,
"total" : 3,
"assigned_to" : 2,
"hight_priority" : 2
}
],
"ok" : 1
}