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. Problem A: 指针:调用自定义交换函数,完成三个数整从小到大排列

    #include<stdio.h> int swap(int *p1,int *p2) { int flag; if(*p1>*p2) { flag=*p1; *p1=*p2; *p ...

  2. Educational Codeforces Round 9 C. The Smallest String Concatenation 排序

    C. The Smallest String Concatenation 题目连接: http://www.codeforces.com/contest/632/problem/C Descripti ...

  3. MYSQL复习笔记13-触发器trigger

    Date: 20140305Auth: Jin 一.概念1.基本概念触发器是一个被指定关联到一个表的数据对象,触发器是不需要调用的,当对一个表的特别事件出现时,它就被激活.触发器的代码也是由SQL语句 ...

  4. MYSQL复习笔记2-自带工具介绍

    Date: 20140102Auth: Jin 一.mysql 命令行客户端1)base-h host-P port--socket=path,-S path用于连接的套接字文件替换使用IP PORT ...

  5. CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)

    一.IP 即时生效(重启后失效): ifconfig eth0 192.168.1.102 netmask 255.255.255.0 //添加IP地址 route add default gw 19 ...

  6. QPS相关的概念收集(吞吐量(TPS)、QPS、并发数、响应时间(RT))

    一.概念: 1.响应时间(RT) 响应时间是指系统对请求作出响应的时间.直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间.由于一个系统通常会提供许 ...

  7. Adaptive Query Optimization in Oracle Database 12c (12.1 and 12.2)

    https://oracle-base.com/articles/12c/adaptive-query-optimization-12cr1

  8. linux下使用C++ Json库

    安装Json库 1.下载JsonCpphttp://sourceforge.net/projects/jsoncpp/files/ 2.下载sconshttp://sourceforge.net/pr ...

  9. 过滤xss攻击和sql注入函数

    /**+----------------------------------------------------------* The goal of this function is to be a ...

  10. 关于json对象的删除

    摘自:http://xosadan.iteye.com/blog/1100383 关于json对象的删除 一个json对象在后台产生了,但是有些数据可能无效或者不合法,所以需要在前台作些例外处理,比如 ...