MongoDB 使用Skip和limit分页_MongoDB

使用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
, limit
Skip
mongodb skip limit、mongo skip limit、skip limit、mysql skip limit、mongoose limit skip,以便于您获取更多的相关知识。

时间: 2024-09-21 21:18:47

MongoDB 使用Skip和limit分页_MongoDB的相关文章

转MongoDB 使用Skip和limit分页

关于MongoDB 数据分页和排序 limit,skip用户的一些基础语句,介绍MongoDB 数据分页和排序实例方法. 使用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是第

MongoDB快速翻页的方法_MongoDB

翻阅数据是MongoDB最常见的操作之一.一个典型的场景是需要在你的用户界面中显示你的结果.如果你是批量处理的数据,同样重要的是要让你的分页策略正确,以便你的数据处理可以规模化. 接下来,让我们通过一个例子来看在MongoDB中翻阅数据的不同方式.在这个例子中,我们有一个CRM数据库的用户数据,我们需要通过翻阅浏览和在同一时间显示10个用户.所以实际上,我们的页面大小是10.下方是我们的用户文档的结构: { _id, name, company, state } 方法一:Using skip()

MongoDB aggregate 运用篇个人总结_MongoDB

最近一直在用mongodb,有时候会需要用到统计,在网上查了一些资料,最适合用的就是用aggregate,以下介绍一下自己运用的心得.. MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*).aggregate() 方法 MongoDB中聚合的方法使用aggregate().语法 aggregate() 方法的基本语法格式如下所示: db.COLLECTION_NAME.agg

MongoDB教程之查询操作实例_MongoDB

1.  基本查询:     构造查询数据.   复制代码 代码如下:     > db.test.findOne()     {          "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"),          "name" : "stephen",          "age" : 35,          "genda" : &qu

mysql-Mysql中limit分页后将数据倒叙排列

问题描述 Mysql中limit分页后将数据倒叙排列 在MySQL中如何将分页的数据倒叙排列?比如取第10~20条数据,然后将数据倒叙排列 解决方案 mysql limit 分页mysql 分页用的limitmysql limit 分页 解决方案二: 先order by再limit.order by接你要排序的字段 解决方案三: 先用order by将所有数据都倒排序好,再用limit 9,10 解决方案四: select * from persons limit 10; 意思是,起点为0,开始

mysql-mySQL的limit分页怎么转换成SQL server语句

问题描述 mySQL的limit分页怎么转换成SQL server语句 String sql="select " + str + " from product,shop where product.shop_id=shop.shop_id " + " limit " + (page *size) + "," + size;//通过limit来达到分页的效果_ 其中定义了private String str = "pr

Mysql Limit 分页查询优化详解_Mysql

select * from table LIMIT 5,10; #返回第6-15行数据 select * from table LIMIT 5; #返回前5行 select * from table LIMIT 0,5; #返回前5行 我们来写分页 物理分页 select * from table LIMIT (当前页-1)*每页显示条数,每页显示条数; MySQL之Limit简单优化.md 同样是取90000条后100条记录,传统方式还是改造方式? 传统方式是先取了前90001条记录,取其中最

Linux系统下MongoDB的简单安装与基本操作_MongoDB

Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象.Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作. 一.下载mongodb 前往mongodb官网下载页面:https://www.mongodb.org/downloads下载

mysql limit 分页优化详解

实现分页,我们一般会使用 select * from table   where id >100  limit   a,b   ,  当分页过大时,如达到一万页,此时 a =十万 ,b=10,   虽然此处使用到了索引(不用索引情况会更加糟糕),但是通过索引检索后还是需要回表去取 十万零一十条数据  然后丢掉前十万条, 返回十条,这个代价明显太大了.   通常的解决方法是,限制总页数,因为通过没有用户会对一万页后的数据感兴趣,当然也可以通过coreseek sphinx 等实现   当然也可以通