基于范围的分页mongodb



在mongodb文档中说:(源)

不幸的是,skip可能(非常)昂贵,并且需要服务器从集合或索引的开头走到在它开始返回数据页之前的偏移/跳过位置(限制)。随着页码的增加,跳过会变得越来越慢cpu密集,可能IO受限,具有较大的集合。范围基于分页提供了更好的索引使用,但不允许您轻松跳转到特定页面。

什么是基于范围的分页,其文档在哪里?

基本思想是将分页写入查询谓词模式。

例如,如果您按日期列出论坛帖子,并且您希望显示下一页,那么使用当前页面上最后一篇帖子的日期作为谓词。MongoDB可以使用建立在date字段上的索引。

//older posts
db.forum_posts.find({date: {$lt: ..last_post_date..} }).sort({date: -1}).limit(20);

当然,如果您用于排序的字段不是唯一的,这就变得有点复杂了。

最新更新