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

时间:2016-09-21 15:32:01

标签: javascript mongodb aggregation-framework database

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

第1阶段

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

我可以在这里做什么来获取记录总数,因此我可以作为部分回复返回。

第3阶段

{ 
  $limit : 50 
}

1 个答案:

答案 0 :(得分:0)

这将是一个黑客。据我所知,您需要在限制之前获取总匹配记录的数量。

您可以使用以下聚合管道执行此操作。

db.session.aggregate([{' $ match':{' some-field':' some-value'}},{&#39 ; $ group':{' _id':null,'记录':{' $ push':' $$ ROOT'} },{' $ project':{'记录':1,' total_records':{' $ size':' $ records'}}},{' $ unwind':' $ records'},{' $ limit':1}],{allowDiskUse:true })

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