mongodb的高级操作(游标、聚合)

mongodb的游标

mongodb的游标类似c#的延迟加载、类似hibernate的懒加载

1.定义list 接受find()的结果集,默认find()的数据是100条数据或者是4M的数据,当两者谁比较小,则返回哪个方案结果集。


2.遍历结果集

遍历结果集的方法有两个

一个是for


一个是next



增强部分 sort(排序) skip(跳过) limit(限制条数)

sort({'age':1,'name':1})                           age是字段的排序,1是正序,-1是倒叙

skip(2)                                                        跳过2个,  1,2,3,4  skip(2)  ==>{3,4}

limit(2)                                                        只取两条

当出现db.person.find().sort().skip().limit()多条件同时存在的时候, 执行的顺序是  find()-->sort()-->skip()-->limit()

skip+limit的效果相当于mysql中的limit(1,2);



查询分为普通查询和包装查询,我们上面演示的各种查询方式都是普通查询

下面我演示一个包装查询



我们的所有查询在发送到数据库端时,都被提前转换成了包装形式!包装形式就是额外使用了一些键,如上述的"$query","$orderby"。我们还有如下一些有用的键可用:
1. $maxscan : integer  指定查询时最多扫描文档的数量
2. $min : document   查询的开始条件
3. $max : document   查询的结束条件
4. $hint : document  指定服务器使用哪些索引进行查询
5. $explain : boolean 获取查询细节,如用到的索引,结果数量,耗时等,类似于关系数据库这边查看执行计划。并不会真正执行查询
6. $snapshot : boolean 确保查询的结果是在查询执行那一刻的一致快照!

。。。。。

有需要的,可以自己详细百度









mongodb的聚合

mongodb的聚合和mysql很类似,有:count,distinct,group,mapReduce等

1.count



2.distinct



3.group


参数解释: 

key:分组的字段值

initial:每次分组调用一次,计数器的存在

$reduce:每次分组匹配到一条,计数器+1


group联合$where查询


posted @ 2015-12-09 23:39  Bug开发攻城狮  阅读(292)  评论(0编辑  收藏  举报