聚合操作
$sum
: 计算总和
1 | db.mycol.aggregate([{$group : {_id:"$f1", num_tutorial:{$sum:"$f2"}}}]) |
$avg
: 计算平均值
1 | db.test.aggregate([{$group:{_id:"$field", avg:{$avg:$f}}}]) |
$min
: 获取集合中所有文档对应的最小值
1 | db.test.aggregate([{$group:{_id:"$field",min:{$min:"$f2"}}}]) |
$max
: 获取集合中所有文档对应的最大值
1 | 参考min |
$push
: 在结果文档中插入值到一个数组
1 | db.t.aggregate([{$group:{_id:"$by_user",url:{$push:"$url"}}}]) |
$first
: 根据资源文档的排序获取第一个文档数据
1 | db.t.aggregate([{$group:{_id:"$by_user",first_url:{$first:"$url"}}}]) |
$last
: 根据资源文档的排序获取最后一个文档数据
1 | 参考first |
$project
修改输出文档的结构$match
用于过滤数据、$limit
限制返回条数$skip
跳过指定条数的文档$unwind
将某个数组类型字段拆分成多条$group
将集合中的文档分组、可用于统计结果$sort
将文档排序后输出
eg.
1 | db.t.aggregate({$project:{_id:0,title:1,tags:1}}) |
mapReduce
1 | map :映射函数 (生成键值对序列,作为 reduce 函数参数)。 |