MongoDB 使用Skip和limit分页

关于MongoDB 数据分页和排序 limit,skip用户的一些基础语句,介绍MongoDB 数据分页和排序实例方法。
数据库

使用Skip和limit能够以下作数据分页:
优化

Code:spa

   page1 = db.things.find().limit(20)排序

   page2 = db.things.find().skip(20).limit(20)ip

   page3 = db.things.find().skip(40).limit(20) 内存

备注:可用于分页,limit是pageSize,skip是第n-1页*pageSize (n-1表示几  第1,2...页)skip表示跳过  多少条数据,聚合管道的优化。
文档

     1.$sort  +  $skip  +  $limit顺序优化it

    若是在执行管道聚合时,若是$sort、$skip、$limit依次出现的话,例如:效率

    { $sort: { age : -1 } },基础

    { $skip: 10 },

    { $limit: 5 }

    那么实际执行的顺序为:

{ $sort: { age : -1 } },

    { $limit: 15 },

    { $skip: 10 }

    $limit会提早到$skip前面去执行。

    此时$limit = 优化前$skip+优化前$limit

    这样作的好处有两个: (脚本学堂 www.jbxue.com)

    1.在通过$limit管道后,管道内的文档数量个数会“提早”减少,这样会节省内存,提升内存利用效率。

    2.$limit提早后,$sort紧邻$limit这样的话,当进行$sort的时候当获得前“$limit”个文档的时候就会中止。

    当数据量很小时,这样作分页彻底没有问题。可是当数据量很大时,skip操做会变的很慢,应该避免使用。  

(不止是mongoDb会这样,大部分数据库都是。)能够经过改变查询文档的规则来达到分页效果,避免使用skip来跳过大量的数据。

(经过计算,获得下次查询应该从什么地方开始)

相关文章
相关标签/搜索