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插件实例代码
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 成功者和失败者的差别 小学一年级作文200字:我们的书 更年期的妈妈 文具盒作文550字 2017年春节饮食健康守则 励志小故事:世界上最顽强的少年 高中高三作文3200字:优秀作文选 收获的作文700字 浅浅的寂寞,浅浅的笑作文300字 那些优雅的菜 我只不过不会八卦是是非非 爱情 距离 时间 我们 现实 2011年销售员年度工作总结 工商局优秀党员先进事迹演讲稿 锅炉房工作制度汇总 写给憨包女:“月”的安慰 冬天的雪景初一作文 党员年终总结:加强自身党性修养,做合格党员 小学生心理健康教育主题班会教案 数码宝贝之新的冒险(3)作文1300字 听说爱情很美 写炒菜的作文600字 神回复段子 其实都是爱作文600字 又闻荠菜香 高中高三作文1200字:妈妈减肥记 爱--让世界不同 电线杆上的猴子作文350字 银行文艺演出活动策划书及串场词 雏菊作文300字 关于励志的故事:不为一次成功所迷惑 关于豆芽的作文150字 我喜欢我的家作文700字 职场中你要有自己的方向 月是故乡明作文900字 用微笑来面对一切 柳梢青(范系尉美任) 狼图腾读后感600字两篇 《骆驼祥子》读后感800字 参加省美术(书法)教师培训班有感 市委领导在共青团市委全委会上的讲话 县XX年度对外宣传工作总结 原创分享“45句话 、 关于人生的选择 青年节诗歌朗诵:纪念五.四青年节 活泼正直的刘维豪 晚托真好 会忘了我吗?在很多年以后! ☆☆☆青丝凝雪谁记得,朱砂耀眼谁疼着☆☆☆ 高一下学期期末动员大会发言稿 高三毕业致辞范文

Copyright © 2016 phpStudy |