mongoDB中级篇①游标cursor

Posted 割肉机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoDB中级篇①游标cursor相关的知识,希望对你有一定的参考价值。

简述

通俗的说,游标不是查询结果,可以理解为数据在遍历过程中的内部指针,其返回的是一个资源,或者说数据读取接口.
客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等!
直接对一个集合调用find()方法时,我们会发现,如果查询结果超过二十条,只会返回二十条的结果,这是因为Mongodb会自动递归find() 返回的游标。

基本操作

当我们使用一个变量来保存 find()的返回值时,其将不会自动进行遍历显示查询结果的操作,并没有真正的去查询数据库,只要当用到的时候(也就是遍历游标的时候)才会到数据库中将数据取出来,和php链接mysql资源一样:

php代码

mongoDB代码(js)

游标在分页中的应用 limit,skip,sort

比如查到10000行,跳过100页,取10行.一般地,我们假设每页N行, 当前是page页,就需要跳过前 (page-1)*N 行, 再取N行, 在mysql中, limit offset,N来实现

在mongo中,用skip(), limit()函数来实现的,当获得游标后,我们可以先对游标进行处理后,再让访问数据库的动作按照我们的意愿发生。在这里我们就可以使用limit,skip,sort三个函数来处理游标。同时这三个函数可以组成方法链式调用的形式。

 

以上是关于mongoDB中级篇①游标cursor的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB的游标操作

MongoDB Cursor - 计数和枚举文档的有效方法(在节点中)

oracle的游标cursor

oracle游标的使用

《MongoDB入门教程》第12篇 查询结果排序

《MongoDB入门教程》第12篇 查询结果排序