按照这个问题的答案(https://stackoverflow.com/a/20817040/2656506),我能够根据它的第一个字符对该字段进行分组:
db.kits.aggregate({ $group: {_id: {$substr: ['$kit', 0, 1]}, count: {$sum: 1}}})
但我无法弄清楚如何在同一查询中另外只对那些符合_id: 'abc'
等附加条件的文档进行分组。可以在一个查询中完成吗?
提前致谢!
答案 0 :(得分:2)
将$match
管道阶段添加到您的聚合查询中:
db.kits.aggregate(
[
{
$match: {
_id: 'abc'
}
},
{
$group: {
_id: {
$substr: ['$kit', 0, 1]
},
count: {$sum: 1}
}
}
]
)