db.collection.find()查询集合会返回一个包含查到的文档的游标。在mongo shell中,如果没有定义一个变量来该游标的内容,默认会迭代返回20个文档。

> db.users.count();db.users.count();
26
> db.users.find();db.users.find();
{ "_id" : ObjectId("5667dbba614c1d1953bce9ba"), "name" : "yb1", "age" : 1, "status" : "A" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bb"), "name" : "yb2", "age" : 2, "status" : "B" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bc"), "name" : "yb3", "age" : 3, "status" : "C" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bd"), "name" : "yb4", "age" : 4, "status" : "D" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9be"), "name" : "yb5", "age" : 5, "status" : "E" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bf"), "name" : "yb6", "age" : 6, "status" : "F" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c0"), "name" : "yb7", "age" : 7, "status" : "G" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c1"), "name" : "yb8", "age" : 8, "status" : "H" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c2"), "name" : "yb9", "age" : 9, "status" : "I" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c3"), "name" : "yb10", "age" : 10, "status" : "J" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c4"), "name" : "yb11", "age" : 11, "status" : "K" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c5"), "name" : "yb12", "age" : 12, "status" : "L" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c6"), "name" : "yb13", "age" : 13, "status" : "M" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c7"), "name" : "yb14", "age" : 14, "status" : "N" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c8"), "name" : "yb15", "age" : 15, "status" : "O" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c9"), "name" : "yb16", "age" : 16, "status" : "P" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9ca"), "name" : "yb17", "age" : 17, "status" : "Q" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9cb"), "name" : "yb18", "age" : 18, "status" : "R" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9cc"), "name" : "yb19", "age" : 19, "status" : "S" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9cd"), "name" : "yb20", "age" : 20, "status" : "T" }
Type "it" for more
>

手动迭代游标:

> var myCursor = db.users.find();
> myCursor
{ "_id" : ObjectId("5667dbba614c1d1953bce9ba"), "name" : "yb1", "age" : 1, "status" : "A" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bb"), "name" : "yb2", "age" : 2, "status" : "B" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bc"), "name" : "yb3", "age" : 3, "status" : "C" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bd"), "name" : "yb4", "age" : 4, "status" : "D" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9be"), "name" : "yb5", "age" : 5, "status" : "E" }
{ "_id" : ObjectId("5667dbba614c1d1953bce9bf"), "name" : "yb6", "age" : 6, "status" : "F" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c0"), "name" : "yb7", "age" : 7, "status" : "G" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c1"), "name" : "yb8", "age" : 8, "status" : "H" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c2"), "name" : "yb9", "age" : 9, "status" : "I" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c3"), "name" : "yb10", "age" : 10, "status" : "J" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c4"), "name" : "yb11", "age" : 11, "status" : "K" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c5"), "name" : "yb12", "age" : 12, "status" : "L" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c6"), "name" : "yb13", "age" : 13, "status" : "M" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c7"), "name" : "yb14", "age" : 14, "status" : "N" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c8"), "name" : "yb15", "age" : 15, "status" : "O" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9c9"), "name" : "yb16", "age" : 16, "status" : "P" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9ca"), "name" : "yb17", "age" : 17, "status" : "Q" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9cb"), "name" : "yb18", "age" : 18, "status" : "R" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9cc"), "name" : "yb19", "age" : 19, "status" : "S" }
{ "_id" : ObjectId("5667dbbb614c1d1953bce9cd"), "name" : "yb20", "age" : 20, "status" : "T" }
Type "it" for more
>
> var myCursor = db.users.find();
> while(myCursor.hasNext()){print(tojson(myCursor.next()));}
{
"_id" : ObjectId("5667dbba614c1d1953bce9ba"),
"name" : "yb1",
"age" : 1,
"status" : "A"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bb"),
"name" : "yb2",
"age" : 2,
"status" : "B"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bc"),
"name" : "yb3",
"age" : 3,
"status" : "C"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bd"),
"name" : "yb4",
"age" : 4,
"status" : "D"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9be"),
"name" : "yb5",
"age" : 5,
"status" : "E"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bf"),
"name" : "yb6",
"age" : 6,
"status" : "F"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c0"),
"name" : "yb7",
"age" : 7,
"status" : "G"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c1"),
"name" : "yb8",
"age" : 8,
"status" : "H"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c2"),
"name" : "yb9",
"age" : 9,
"status" : "I"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c3"),
"name" : "yb10",
"age" : 10,
"status" : "J"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c4"),
"name" : "yb11",
"age" : 11,
"status" : "K"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c5"),
"name" : "yb12",
"age" : 12,
"status" : "L"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c6"),
"name" : "yb13",
"age" : 13,
"status" : "M"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c7"),
"name" : "yb14",
"age" : 14,
"status" : "N"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c8"),
"name" : "yb15",
"age" : 15,
"status" : "O"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c9"),
"name" : "yb16",
"age" : 16,
"status" : "P"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9ca"),
"name" : "yb17",
"age" : 17,
"status" : "Q"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cb"),
"name" : "yb18",
"age" : 18,
"status" : "R"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cc"),
"name" : "yb19",
"age" : 19,
"status" : "S"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cd"),
"name" : "yb20",
"age" : 20,
"status" : "T"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9ce"),
"name" : "yb21",
"age" : 21,
"status" : "U"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cf"),
"name" : "yb22",
"age" : 22,
"status" : "V"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d0"),
"name" : "yb23",
"age" : 23,
"status" : "W"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d1"),
"name" : "yb24",
"age" : 24,
"status" : "X"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d2"),
"name" : "yb25",
"age" : 25,
"status" : "Y"
}
{
"_id" : ObjectId("5667dbbc614c1d1953bce9d3"),
"name" : "yb26",
"age" : 26,
"status" : "Z"
}
>
> var myCursor = db.users.find();
> while(myCursor.hasNext()){printjson(myCursor.next());}
{
"_id" : ObjectId("5667dbba614c1d1953bce9ba"),
"name" : "yb1",
"age" : 1,
"status" : "A"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bb"),
"name" : "yb2",
"age" : 2,
"status" : "B"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bc"),
"name" : "yb3",
"age" : 3,
"status" : "C"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bd"),
"name" : "yb4",
"age" : 4,
"status" : "D"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9be"),
"name" : "yb5",
"age" : 5,
"status" : "E"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bf"),
"name" : "yb6",
"age" : 6,
"status" : "F"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c0"),
"name" : "yb7",
"age" : 7,
"status" : "G"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c1"),
"name" : "yb8",
"age" : 8,
"status" : "H"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c2"),
"name" : "yb9",
"age" : 9,
"status" : "I"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c3"),
"name" : "yb10",
"age" : 10,
"status" : "J"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c4"),
"name" : "yb11",
"age" : 11,
"status" : "K"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c5"),
"name" : "yb12",
"age" : 12,
"status" : "L"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c6"),
"name" : "yb13",
"age" : 13,
"status" : "M"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c7"),
"name" : "yb14",
"age" : 14,
"status" : "N"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c8"),
"name" : "yb15",
"age" : 15,
"status" : "O"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c9"),
"name" : "yb16",
"age" : 16,
"status" : "P"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9ca"),
"name" : "yb17",
"age" : 17,
"status" : "Q"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cb"),
"name" : "yb18",
"age" : 18,
"status" : "R"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cc"),
"name" : "yb19",
"age" : 19,
"status" : "S"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cd"),
"name" : "yb20",
"age" : 20,
"status" : "T"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9ce"),
"name" : "yb21",
"age" : 21,
"status" : "U"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cf"),
"name" : "yb22",
"age" : 22,
"status" : "V"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d0"),
"name" : "yb23",
"age" : 23,
"status" : "W"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d1"),
"name" : "yb24",
"age" : 24,
"status" : "X"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d2"),
"name" : "yb25",
"age" : 25,
"status" : "Y"
}
{
"_id" : ObjectId("5667dbbc614c1d1953bce9d3"),
"name" : "yb26",
"age" : 26,
"status" : "Z"
}
>
> var myCursor = db.users.find();
> myCursor.forEach(printjson);
{
"_id" : ObjectId("5667dbba614c1d1953bce9ba"),
"name" : "yb1",
"age" : 1,
"status" : "A"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bb"),
"name" : "yb2",
"age" : 2,
"status" : "B"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bc"),
"name" : "yb3",
"age" : 3,
"status" : "C"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bd"),
"name" : "yb4",
"age" : 4,
"status" : "D"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9be"),
"name" : "yb5",
"age" : 5,
"status" : "E"
}
{
"_id" : ObjectId("5667dbba614c1d1953bce9bf"),
"name" : "yb6",
"age" : 6,
"status" : "F"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c0"),
"name" : "yb7",
"age" : 7,
"status" : "G"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c1"),
"name" : "yb8",
"age" : 8,
"status" : "H"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c2"),
"name" : "yb9",
"age" : 9,
"status" : "I"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c3"),
"name" : "yb10",
"age" : 10,
"status" : "J"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c4"),
"name" : "yb11",
"age" : 11,
"status" : "K"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c5"),
"name" : "yb12",
"age" : 12,
"status" : "L"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c6"),
"name" : "yb13",
"age" : 13,
"status" : "M"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c7"),
"name" : "yb14",
"age" : 14,
"status" : "N"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c8"),
"name" : "yb15",
"age" : 15,
"status" : "O"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9c9"),
"name" : "yb16",
"age" : 16,
"status" : "P"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9ca"),
"name" : "yb17",
"age" : 17,
"status" : "Q"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cb"),
"name" : "yb18",
"age" : 18,
"status" : "R"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cc"),
"name" : "yb19",
"age" : 19,
"status" : "S"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cd"),
"name" : "yb20",
"age" : 20,
"status" : "T"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9ce"),
"name" : "yb21",
"age" : 21,
"status" : "U"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9cf"),
"name" : "yb22",
"age" : 22,
"status" : "V"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d0"),
"name" : "yb23",
"age" : 23,
"status" : "W"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d1"),
"name" : "yb24",
"age" : 24,
"status" : "X"
}
{
"_id" : ObjectId("5667dbbb614c1d1953bce9d2"),
"name" : "yb25",
"age" : 25,
"status" : "Y"
}
{
"_id" : ObjectId("5667dbbc614c1d1953bce9d3"),
"name" : "yb26",
"age" : 26,
"status" : "Z"
}
>

使用迭代器索引
在mongo shell中,可以使用toArray()方法来迭代游标,并以array的形式返回游标的内容

> var myCursor = db.users.find();
> var usersArray = myCursor.toArray();
> var myDocument = usersArray[3]
> myDocumentmyDocument
{
"_id" : ObjectId("5667dbba614c1d1953bce9bd"),
"name" : "yb4",
"age" : 4,
"status" : "D"
}
>

也可以直接在游标上加下标的方式,查看文档:(cursor[index])

> var myCursor =db.users.find();
> var myCursor =myCursor[3];
> myCursormyCursor
{
"_id" : ObjectId("5667dbba614c1d1953bce9bd"),
"name" : "yb4",
"age" : 4,
"status" : "D"
}
>

 cursor[index]等价于cursor.toArray()[index]

缺省情况下,在会话处于非活跃状态10分钟后,或者客户端已经遍历了游标的内容,mongodb会自动关闭游标。
如果想修改超时时间,使用cursor的时候,可以使用cursor.addOption()来修改noTimeout标记:

var myCursor = db.users.find().addOption(DBQuery.Option.noTimeout);

记得要及时关闭游标!

MongoDB - Cursors的更多相关文章

  1. mongodb collection method

    https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/ db.coll_test.getIndexes()# ...

  2. Mongodb常用命令介绍

    查看命令的方式: 1.在shell中运行db.listCommands() 2.在浏览器中访问管理员接口:http://ipaddress:28017/_commands 下面介绍在Mongodb中最 ...

  3. MongoDB使用小结:一些不常见的经验分享

    最近一年忙碌于数据处理相关的工作,跟MongoDB打交道极多,以下为实践过程中的Q&A,后续会不定期更新补充. 另有<MongoDB使用小结:一些常用操作分享>,注:本文完成时Mo ...

  4. mongoDB学习记录---PHP扩展的find返回值

    最近的一个项目中用到了MongoDB,主要是使用MongoDB的PHP扩展.MongoDB的扩展中用于一个用于查询的方法是find().下面针对在理解MongoDB扩展的find()方法中做的实验做个 ...

  5. MongoDB基本管理命令

    MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...

  6. 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用

    在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...

  7. MongoDB 常用故障排查工具

    1.profile profiling levels: 0,关闭profile:1,只抓取slow查询:2,抓取所有数据. 启动profile并且设置Profile级别: 可以通过mongo shel ...

  8. MongoDB ServerStatus返回信息

    ServerStatus返回信息 ServerStatus返回mongodb中很多信息 http://docs.mongodb.org/manual/reference/command/serverS ...

  9. MongoDB—— 读操作 Core MongoDB Operations (CRUD)

    本文主要介绍内容:从MongoDB中请求数据的不同的方法 Note:All of the examples in this document use the mongo shell interface ...

随机推荐

  1. c/c++代码的unit-test中覆盖率的统计

    gcov lcov genhtml工具      gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数生成二进制程序,执行测试用例生成代码覆盖率信 ...

  2. oracle如何查询哪个表数据量大

  3. Spring WebSocket入门(二) 转载

    本文转载自:http://www.jianshu.com/p/8500ad65eb50 WebSocket前端准备 前端我们需要用到两个js文件:sockjs.js和stomp.js SockJS:S ...

  4. WordPress < 3.6.1 PHP 对象注入漏洞

    0x00 背景 当我读到一篇关于Joomla的“PHP对象注射”的漏洞blog后,我挖深了一点就发现Stefan Esser大神在2010年黑帽大会的文章: http://media.blackhat ...

  5. pymongo常见的高级用法

    pymongo是python中基于mongodb数据库开发出来的,比mongoengine要高级一些,也要好用一些. 基本的增删查改就不说了 insert() delete() find() upda ...

  6. H5+CSS3简单动画 知识点 汇总

    乱入几个:  1.h5的一个语义化标签   figure :用于规定独立的流内容(图像 图表 照片 代码等)   figcapition:与figure配套使用,用于标签定义figure元素标题 2. ...

  7. Win7如何开启Telnet服务

    http://jingyan.baidu.com/article/870c6fc3cd6fa9b03fe4bee4.html telnet 192.168.1.10 2181

  8. Lina Group

    var query = from ll in proListRequestList group ll by new {ll.pro_id} into g select new ProListReque ...

  9. MYSQL 问题

    MYSQL 问题 (1)mysql server has gone away 导数据时,如果脚本太大,会执行中断,这时需要修改最大允许包的大小: set global max_allowed_pack ...

  10. ios 程序发布使用xcode工具Application Loader 正在通过ITUNES STORE进行鉴定错误

    ios 程序发布使用xcode工具Application Loader 正在通过ITUNES STORE进行鉴定错误 一:此错误会导致上传程序,一直停留在验证阶段,而没有一点上传进度:结果会苦等半天, ...