MongoDB 的游标相当于 Python 中的迭代器,通过将查询结构定义给一个变量,这个变量就是游标,通过这个游标,我们可以每次获取一个数据。
MongoDB 中 find() 函数返回一个游标,客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等!
MongoDB 中的游标与关系型数据库中的游标在功能上大同小异。游标相当于 C 语言 的指针,可以定位到某条记录,在 MongoDB 中,则是文档。因此在 MongoDB 中游标也有定义,声明, 打开,读取,关闭这么个过程。客户端通过游标,能够实现对最终结果进行有效的控制,诸如限制结果数量,跳过部分结果或根据任意键按任意顺序的组合对结果进行各种排序等。
通俗的说,游标不是查询结果,可以理解为数据在遍历过程中的内部指针,其返回的是一个资源,或者说数据读取接口。
客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等!
直接对一个集合调用 find() 方法时,我们会发现,如果查询结果超过二十条,只会返回二十条的结果,这是因为 Mongodb 会自动递归 find() 返回的游标。
操作 | 语法 |
---|---|
hasNext | 判断是否还有更多的文档 |
next | 用来获取下一条文档 |
toArray | 将查询结果放到数组中 |
count | 获取结果集中总的文档数量 |
limit | 限制结果返回数量 |
skip | 跳过指定数目的文档 |
sort | 对查询结果进行排序 |
objsLeftInBatch | 查看当前批次剩余的未被迭代的文档数量 |
addOption | 为游标设置辅助选项,修改游标的默认行为 |
hint | 为查询强制使用指定索引 |
explain | 用于获取查询执行过程报告 |
snapshot | 对查询结果使用快照 |
var myCursor = db.users.find().noCursorTimeout()
db.collection.find(<query>).close()
MongoDB 的游标相当于 Python 中的迭代器,通过将查询结构定义给一个变量,这个变量就是游标,通过这个游标,我们可以每次获取一个数据。
MongoDB 中 find() 函数返回一个游标,客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等!