当前位置: 首页 > 编程笔记 >

MongoDB 使用Skip和limit分页

叶稳
2023-03-14
本文向大家介绍MongoDB 使用Skip和limit分页,包括了MongoDB 使用Skip和limit分页的使用技巧和注意事项,需要的朋友参考一下

使用Skip和limit可以如下做数据分页:

Code:

   page1 = db.things.find().limit(20)
   page2 = db.things.find().skip(20).limit(20)
   page3 = db.things.find().skip(40).limit(20) 

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

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

    { $sort: { age : -1 } },
    { $skip: 10 },
    { $limit: 5 }

    那么实际执行的顺序为:

{ $sort: { age : -1 } },
    { $limit: 15 },
    { $skip: 10 }

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

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

    这样做的好处有两个:

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

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

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

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

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

 类似资料:
  • 本文向大家介绍高效mongodb的php分页类(不使用skip),包括了高效mongodb的php分页类(不使用skip)的使用技巧和注意事项,需要的朋友参考一下 mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低。 如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录,效率不会差。

  • 本文向大家介绍如何使用LIMIT查询MongoDB?,包括了如何使用LIMIT查询MongoDB?的使用技巧和注意事项,需要的朋友参考一下 使用limit()方法查询MongoDB。让我们创建一个包含文档的集合 在find方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是在MongoDB中使用LIMIT的查询- 这将产生以下输出-

  • 我在我的应用程序中使用了Neo4j(3.5.1)和Spring-data-neo4j(5.0.10.release)。我也在使用OGM。 我的节点之间有以下关系: 我试图写一个密码查询,以获得所有的零件在一辆车。但是,我想对结果进行分页,还想对按创建日期排序的零件进行排序(最近创建的零件首先返回)

  • 如果不存在则创建表(int(11)不为空AUTO_INCREMENT,char(50)不为空,主键())engine=innoDB DEFAULT charset=latin1 AUTO_INCREMENT=11; 表tblcontent 如果不存在(int(11)不为NULL AUTO_INCREMENT,char(100)不为NULL,text不为NULL,date不为NULL,char(50

  • 问题内容: 我有一些限制数据以每页仅显示4个项目的代码。我使用的列大约有20到30个项目,因此我需要将这些项目分散在各个页面上。 在第一页上,我有: 您会在页面底部注意到我的定位标记,其中列出了第二个页面“ itempage2.php”。在项目页面2中,我具有相同的代码,除了我的select语句列出了偏移量4。 当我的数据库中有预定数量的项目时,这种方式可以运行。但这不是很好。仅当有更多项目时才需

  • 本文向大家介绍分页使用MySQL LIMIT,OFFSET吗?,包括了分页使用MySQL LIMIT,OFFSET吗?的使用技巧和注意事项,需要的朋友参考一下 首先,我们需要创建一个包含一些记录的表,然后在限制和偏移量的帮助下使用分页。 借助CREATE命令创建表。查询如下- 创建表后,我们将在INSERT命令的帮助下插入记录。 插入记录 插入记录后,我们可以借助SELECT命令检查表中有多少条记