1.手动循环访问游标
mongo中我们常用的查询方式db.collection.find()方法其实返回的就是游标,只不过我们并未给返回的游标分配变量,我们所看到的的查询数据也就是游标自动迭代得出的(在shell中自动迭代20次).下面便使用手动迭代游标
db.users.insert([{name:1},{name:2},{name:3}])
然后使用变量来接收返回的游标
var myCursor = db.users.find()
然后我们再次调用myCursor即可输出
我们还可以使用hasNext()和next()方法来执行游标
while(myCursor.hasNext()) { printjson(myCursor.next()) }
也可以使用游标的forEach()方法来执行游标
myCursor.forEach(printjson)
在shell中,可以使用toArray()方法来迭代游标并返回数组中文档
注意:toArray()方法会完成迭代,所以游标会耗尽
var arrdoc = myCursor.toArray() for(var i = 0;i<arrdoc.length;i++) { printjson(arrdoc[i]) }
2.查询游标保留文档数
mongo中objsLeftInBatch()方法可以查询由表中保留的文档数