mongodb php skip,MongoDB_MongoDB 使用Skip和limit分页,使用Skip和limit可以如下做数据 - phpStudy...

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来跳过大量的数据。

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

C#操作读取、写入XML文档的实用方法

在页面中js获取光标/鼠标的坐标及光标的像素坐标

JS实现合并两个数组并去除重复项只留一个的方法

Android中实现布局背景模糊化处理的方法

仅30行代码实现Javascript中的MVC

JS小功能(button选择颜色)简单实例

MySQL中的CONCAT函数使用教程

PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)

IOS入门笔记之地理位置定位系统

jQuery中animate动画第二次点击事件没反应

wordpress自定义url参数实现路由功能的代码示例

C++实现打印1到最大的n位数

Win8系统怎么重装IE浏览器?Win8重装IE图文教程

gulp-htmlmin压缩html的gulp插件实例代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值