在使用聚合时,如何在运行限制之前获得记录的总数

How do I get the total number of records before I run limit when using Aggregation

本文关键字:记录 运行      更新时间:2023-09-26

如何在使用聚合时运行限制之前获得记录的总数?

阶段1

{
  $text: { 
    $search: 'blah', 
    $caseSensitive: false 
}

我怎么做才能得到记录的总数,这样我就可以作为部分响应返回。

第三阶段

{ 
  $limit : 50 
}

这将是一个hack。根据我的理解,您的要求是,在限制匹配记录之前,您需要得到匹配记录的总数。

你可以使用下面的聚合管道。

db.session。总([{$匹配:{"某些领域":"值"}},{"美元集团":{"_id":空,"记录":{"推动美元":"$ $ ROOT"}}},{"美元项目":{"记录":1、"total_records":{"美元大小":"美元记录"}}},{"解除美元":"美元记录"},{"美元限制":1}),{allowDiskUse:真})

total_records字段将是总的匹配文档计数。不要忘记传递allowDiskUse参数。您可能还需要使用间歇投影阶段来根据需要更改文档。