1.利用游标遍历查询数据
> var persons = db.persons.find();
> while(persons.hasNext()){
... obj = persons.next();
... print(obj.name);
... }
查询结果:
tom
lili
zhangsan
lisi
wangwu
zhaoliu
piaoyingjun
lizhenxian
lixiaoli
zhangsuying
jim
2.游标的几个销毁条件
a.客户端发来信息叫他销毁
b.游标迭代完毕
c.默认游标超过10分钟没用也会被清除
3.查询快照的使用
问:为什么要用查询快照?
每次在遍历的时候同时进行修改,会导致集合元素的顺序发生变化,有了快照,这样就可以避免因为顺序变化带来的未知问题
增加快照后就会针对不变的集合进行游标移动了,看看使用方法:
db.persons.find({$query:{name:”jim”},$snapshot:true})
高级查询选项
符号 | 返回值类型 | 含义 |
---|---|---|
$query | 查询 | |
$oderby | 排序 | |
$maxsan | integer | 最多扫描的文档数 |
$min | doc | 查询开始 |
$max | doc | 查询结束 |
$hint | doc | 使用哪个索引 |
$explain | boolean | 统计 |
$snapshot | boolean | 一致快照 |