游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标可以被看作是一个查询结果集(可以是零条、一条或由干系的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成的一个临时文件,供应了在查询结果集中向前或向后浏览数据、处理结果集中数据的能力。有了游标,用户就可以访问结果集中任意一行数据,在将游标放置到某行之后,可以在该行或从该位置的行块上实行操作。
二、MongoDB的游标在MongoDB中,利用db.collection.find()方法将返回一个游标。如果要访问文档,我们须要利用游标的迭代器。但是,在mongo shell中,如果没有给返回的游标指定变量,游标将自动首先返回前20条记录。下面我们通过几个详细的例子,来解释如何利用游标。
var mycursor = db.emp.find()
利用游标访问文档
var mycursor = db.emp.find()while(mycursor.hasNext()){ printjson(mycursor.next())}也可以像这样:mycursor.forEach(printjson)
游标和数组
var mycursor = db.emp.find() 定义游标var myarray = mycursor.toArray() 将游标转成数组var myDocument = myarray[3] 通过数组元素访问文档
分页查询: skip和limit
每页显示5条记录var mycursor = db.emp.find().limit(5) 第一页var mycursor = db.emp.find().limit(5).skip(5) 第二页
关闭游标:默认情形下,10分钟内没有利用利用的游标会被自动关闭。可以利用.noCursorTimeout()来设置游标的关闭选项,这时就须要手动关闭游标。

var mycursor = db.emp.find().noCursorTimeout()