前端之家收集整理的这篇文章主要介绍了
聚合命令,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
----------------------------------------------------聚合命令 测试集合中的数据如下: 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"}}}]) $first 根据资源文档的排序
获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user",first_url : {$first : "$url"}}}]) $last 根据资源文档的排序
获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user",last_url : {$last : "$url"}}}])