聚合命令

----------------------------------------------------聚合命令 测试集合中的数据如下: db.mycol.insert({ title: 'MongoDB Overview',description: 'MongoDB is no sql database',by_user: 'w3cschool.cc',url: 'http://www.w3cschool.cc',tags: ['mongodb','database','Nosql'],likes: 100 }) db.mycol.insert({ title: 'Nosql 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"}}}]) $first 根据资源文档的排序获取一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user",first_url : {$first : "$url"}}}]) $last 根据资源文档的排序获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user",last_url : {$last : "$url"}}}])

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...