在mongo中链接limit()以避免返回所有结果

时间:2019-01-08 13:48:28

标签: mongodb

会查询以下内容:

db.collection.find() \
.limit(<max no. of item to return>) \
.skip(<(pageIndex-1)*no. of item to display>) \
.limit(<no. of item to display>)

仍然会执行第一个限制器“要返回的最大物品数”或第二个限制器“要显示的最大物品数”。

例如如果我有10,000条记录

我希望将最大分页数限制为第5,000条记录,但是每页显示100个索引,这将给我50页的结果,无论10,000条记录是否增长。

1 个答案:

答案 0 :(得分:2)

find仅支持单个limit,但是您可以使用聚合管道来做到这一点:

db.collection.aggregate([
    {$limit: n},
    {$skip: (pageIndex-1)*m},
    {$limit: m}
])

但是,请注意,您将始终读取集合中的所有n记录,因此最好在业务逻辑中执行此检查。