使用聚合时,如何在运行限制之前获取记录总数?
第1阶段
{
$text: {
$search: 'blah',
$caseSensitive: false
}
我可以在这里做什么来获取记录总数,因此我可以作为部分回复返回。
第3阶段
{
$limit : 50
}
答案 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参数。您可能还需要使用间歇投影阶段根据需要更改文档。