----------------------------------------------------聚合命令 测试集合中的数据如下: db.mycol.insert({ title: 'MongoDB Overview',description: 'MongoDB is no
sql database',by_user: 'w3cschool.cc',url: 'http://www.w3cschool.cc',tags: ['mongodb','database','No
sql'],likes: 100 }) db.mycol.insert({ title: 'No
sql Overview',description: 'No
sql database is very fast',likes: 10 }) db.mycol.insert({ title: 'Neo4j Overview',description: 'Neo4j is no
sql database',by_user: 'Neo4j',url: 'http://www.neo4j.com',tags: ['neo4j',likes: 750 }) 1、计算每个作者所写的
文章数 db.mycol.aggregate([{$group : {_id : "$by_user",num_tutorial : {$sum : 1}}}]) 以上实例类似
sql语句: select by_user,count(*) from mycol group by by_user $sum 计算总和 db.mycol.aggregate([{$group : {_id : "$by_user",num_tutorial : {$sum : "$likes"}}}]) $avg 计算平均值 db.mycol.aggregate([{$group : {_id : "$by_user",num_tutorial : {$avg : "$likes"}}}]) $min
获取集合中所有文档对应值得最小值。 db.mycol.aggregate([{$group : {_id : "$by_user",num_tutorial : {$min : "$likes"}}}]) $max
获取集合中所有文档对应值得最大值。 db.mycol.aggregate([{$group : {_id : "$by_user",num_tutorial : {$max : "$likes"}}}]) $push 在结果文档中插入值到
一个数组中。 db.mycol.aggregate([{$group : {_id : "$by_user",url : {$push: "$url"}}}]) $addToSet 在结果文档中插入值到
一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : "$by_user",url : {$addToSet : "$url"}}}]) $f
irst 根据资源文档的排序
获取第
一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user",f
irst_url : {$f
irst : "$url"}}}]) $last 根据资源文档的排序
获取最后
一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user",last_url : {$last : "$url"}}}])