我正在努力编写一个mongo聚合,它将返回匹配的文档以及每个标识符(在本例中为staffId)的匹配文档数。
我有下面的聚合,它可以返回计数,但似乎无法获得每个staffId的匹配文档。
xxx.aggregate([
// step 1
{
$match: obj,
},
// step 2
{
$group: {
_id: "$staffId",
count: { $sum: 1 },
},
},
]);
其思想是返回一个包含staffId和count的对象数组,然后使用每个staffId返回匹配的文档,返回如下内容:
[{_id: '1234', count: 4, documents: [matching-documents for staff 1234]}, {_id: '5678', count: 12, documents: [matching-documents for staff 5768] } ]
任何帮助都是非常感谢的。谢谢!
1条答案
按热度按时间lskq00tm1#
您可以对
$$ROOT
执行$push
操作,$$ROOT
在$group
阶段引用文档本身。Mongo Playground