如何在一个聚合管道阶段进行计数并在以后的阶段中使用它?

时间:2020-09-08 20:26:18

标签: mongodb aggregation-framework

在聚合管道的最后阶段,我想从早期返回“总数”。在$unwind之后,管道会过滤掉我不想返回给用户的文档。除了返回相关文档之外,我还希望返回“未过滤的总数”计数。我该怎么办?

就像我想要一个阶段(在管道的开始附近),该阶段除了设置变量之外什么也没做-那个阶段的文档数。然后,在最后阶段,理想情况下,我想引用该变量,以便可以将{totalUnfiltered“:{count value}添加到$project

文档中唯一相关的是$let表达式。但是我认为这仅是为了设置一个变量以供当前阶段使用。

1 个答案:

答案 0 :(得分:0)

我用$facet解决了这个问题,它使您可以将一个阶段分成多个部分,每个部分对应一个阶段列表。