使用跳过和限制可以进行如下的数据分页:

代码:


page1 = db.things.find()限制(20)。
第2页= db.things.find()。跳过(20)限制(20)。
第三页= db.things.find()。跳过(40)限制(20)。




注:可用于寻呼,限制大小和跳过N-1页* PageSize(n-1代表几个1,2…页面)跳过显示了跳过多少数据,以及如何优化聚合管道。

1美元排序+跳过$ +限制的顺序优化

如果在执行管道聚合时依次出现排序、跳过和$限制,例如:


{排序:{年龄:1 } },
{ $跳过:10 },
{ $限制:5 }




实际执行的顺序是:


{排序:{年龄:1 } },
{ $限制:15 },
{ $跳过:10 }




$限额将提前到$跳过时间。

此时,在优化之前$ $ =优化$跳过+优化之前限制

做这件事有两个好处:

1。在通过$限制管道后,将提前减少管道中的文档数,节省内存,提高内存利用效率。

当$ 2限制是提前,$排序接近$限制,当你做排序,它停止时,它的第一个$极限文件。

当数据量很小,使寻呼是绝对没有问题,但当数据量大,跳过操作将是缓慢的,应该避免。 U3000 U3000

(以上mondb,大部分数据。)分页效果可以通过改变查询文档的规则来避免使用跳过大量数据的实现。

(通过计算,获得下一个查询应该从何处开始)