MongoDB快速翻页的方法_MongoDB

翻阅数据是MongoDB最常见的操作之一。一个典型的场景是需要在你的用户界面中显示你的结果。如果你是批量处理的数据,同样重要的是要让你的分页策略正确,以便你的数据处理可以规模化。

接下来,让我们通过一个例子来看在MongoDB中翻阅数据的不同方式。在这个例子中,我们有一个CRM数据库的用户数据,我们需要通过翻阅浏览和在同一时间显示10个用户。所以实际上,我们的页面大小是10。下方是我们的用户文档的结构:

{

  _id,

  name,

  company,

  state

}

方法一:Using skip() 和 limit()

MongoDB本身支持分页操作使用 skip() 和 limit() 指令。skip(n)指令告诉MongoDB,它应该跳过“n”结果和limit(n)指令指示MongoDB,它应该限制结果长度为“n”结果。通常情况下,你将使用 skip() 和 limit() 指令,但为了说明情况,我们提供了控制台命令,这样也能达到相同的结果。同时,为了代码比较简洁,限制检查代码被排除在外。

//Page 1

db.users.find().limit (10)

//Page 2

db.users.find().skip(10).limit(10)

//Page 3

db.users.find().skip(20).limit(10)

........

一般来说,检索页面n,代码是这样的:

db.users.find().skip(pagesize*(n-1)).limit(pagesize)
然而,随着数据的大小增加,这种方法出现严重的性能问题。其原因是在每次执行查询时,建立了完整的结果集,那么服务器必须从收集的开始走到指定的偏移量。当偏移量增加时,这一过程会变得越来越慢。同时,这个过程没有有效地使用索引。所以,当你有较小的数据集时,典型的“skip() ”和“ limit() ”的方法是有用的。如果您正在使用大数据集,您需要考虑其他方法。

方法二:Using find() 和limit()

以前的方法不能很好扩展其原因是skip() 命令。因此,本节的目标是实现分页不使用skip()命令。为此,我们将利用在存储数据中的自然顺序,比如时间戳或文档中存储的标识。

在这个例子中,我们将使用“_id”存储每个文档。“_id”是一个MongoDB 的ObjectID结构,即 12 字节结构包含了时间戳、机械加工、进程标识符、计数器等。总体思路如下 :

检索当前页中的最后一个文档 _id
在下一个页面检索文件大于此”_id”

//Page 1

db.users.find().limit(pageSize);

//Find the id of the last document in this page

last_id = ...

//Page 2

users = db.users.find({'_id'> last_id}). limit(10);

//Update the last id with the id of the last document in this page

last_id = ...

这种方法利用内在的规则存在_id字段。也因为“_id”字段是默认的查找操作,它是非常好的性能指标。如果你使用的字段没有被索引,那么你在操作中会受到困扰,所以确保字段被索引是非常重要的。

同样,如果你希望数据按照特定顺序进行排序分页的话,那么你还可以使用sort()条款与上述技术。重要的是要确保排序过程是利用索引来获得最佳性能。您可以使用.explain()后缀来查询。

users = db.users.find({'_id'> last_id}). sort(..).limit(10);

//Update the last id with the id of the last document in this page

last_id = ...

以上就是MongoDB快速翻页的方法,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mongodb
翻页
mongodb 翻页、kindle快速翻页、steam市场快速翻页、kindle如何快速翻页、word快速翻页,以便于您获取更多的相关知识。

时间: 2024-10-23 05:51:52

MongoDB快速翻页的方法_MongoDB的相关文章

在Word 2010中使用“定位”功能快速翻页

当用户想要在一个比较长的Word 2010文档中快速定位到某个特定页时,可以借助Word 2010提供的"定位"功能实现快速翻页,操作步骤如下所述: 第1步,打开Word 2010长文档,在"开始"功能区的"编辑"分组中单击"查找"按钮右侧的下拉三角按钮,并单击"转到"命令,如图2010081219所示. 图2010081219 单击"转到"命令 第2步,打开"查找和替换&qu

IE10快速翻页功能让浏览更高效

浏览网页时常会遇到这样的情况,一篇文章被分成几页或十几页来显示, 于是每看完一页都要找到"下一页"按钮来翻页,十分麻烦.Modern触控版IE10浏览器的快速翻页功能,让你无需费心寻找按钮,一键即可直接跳转到下一页,非常的方便. 一键快速翻页(Alt + →) 将鼠标移动至网页中线右侧,单击隐藏的前进按钮(或使用快捷键Alt + →),即可快速跳转到下一页. 触屏操作 用手指从屏幕右边向左边滑动,即可跳转到下一页. 如果你无法在Modern触控版IE10下使用快速翻页功能,这个可能是这

在Word2010中使用“定位”功能快速翻页

  当用户想要在一个比较长的Word2010文档中快速定位到某个特定页时,可以借助Word2010提供的"定位"功能实现快速翻页,操作步骤如下所述: 第1步,打开Word2010长文档,在"开始"功能区的"编辑"分组中单击"查找"按钮右侧的下拉三角按钮,并单击"转到"命令,如图2010081219所示. 图2010081219 单击"转到"命令 第2步,打开"查找和替换&quo

Js实现网页键盘控制翻页的方法_javascript技巧

本文实例讲述了Js实现网页键盘控制翻页的方法.分享给大家供大家参考.具体实现方法如下: 键盘控制翻页效果我想我们不少见了,经常在很多网站特别是相册的效果都可以直接使用键盘进行上下页进行翻页了,原理很简单,只要利用js监测用户是否有按上下键即可实现. 举例如下: 复制代码 代码如下: <a id="last" href="<?=$lefturl?>">上一章</a> <a id="booklist" hre

微信读书设置音量键翻页的方法

微信读书怎么设置音量键翻页 在微信读书界面中我们点击[我]然后找到打开界面中的[设置 ],开启[使用音量键翻页]即可. 设置好了我们可以试一下使用音量是不是可以进行翻页了哦,上可以前下可以后一页哦,希望文章能够帮助到大家.

Mongodb自增id实现方法_MongoDB

本文实例讲述了Mongodb自增id实现方法.分享给大家供大家参考,具体如下: 首先创建一个自动增长id集合 ids >db.ids.save({name:"user", id:0}); 可以查看一下是否成功 > db.ids.find(); { "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id&quo

MongoDB的一些常用查询方法_MongoDB

Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件 Query.EQ("name", "a");//等于 Query.Exists("type"

mongodb设置后台运行的方法_MongoDB

默认的情况下,关闭shell,mongodb就停止运行了. 如果想在后台运行,启动时只需添加 --fork函数即可. 可以在日志路径后面添加--logappend,防止日志被删除. 复制代码 代码如下: bin/mongodb  --fork --dbpath=//  --logpath=//  --logappend 在后台运行,如果想要关闭它的话,需要给他发送shutdownServer() 1.普通命令: 复制代码 代码如下: $ ./mongod > use admin > db.sh

Windows下把MongoDB安装为系统服务的方法_MongoDB

总结一下如何将mongoDB安装为WinXP下系统服务. 使用的命令如下: 复制代码 代码如下: Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. C:\Documents and Settings\Administrator>mongod -dbpath C:\mongo\MongoDB\mongo\data --logpath=C:\mongo\MongoDB\mongo\logs\mongodb.lo