我正在处理具有以下架构的Mongo集合
{ _id: "123", Items: [...] }
我目前有一个管道,它遍历集合,并使用$facet
ing对Items
的内容进行一些聚合.
这看起来是这样的:
"myFacet": [
"$project": {
"_id": 1,
"Name": 1,
"totalCount": {
"$size": {
"$filter": { ... }
}
}
}
]
我想做的就是做和totalCount
一样的事情,但再往前一步,只得到distinct个结果的计数.
我知道在正常的聚合中如何做到这一点,首先是$unwind
,然后是$match
,然后是$group
.
但是,如果我可以对$filter
中的数组进行进一步的操作,从而获得某种不同的计数,我就有点迷茫了.在我开始重构整个查询之前,我想看看是否有一种方法可以先完成它.