Go教程

mongodb 聚合查询

本文主要是介绍mongodb 聚合查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

mongo shell 操作

aggregate

使用mongo db 的 aggregate 进行聚合操作,改操作传入的参数是一个数组

aggregate 操作的参数

  1. match 相当于 mysql 的 where,传入的是筛选条件

示例:

{$match : {
    'os': 'win'  
  }
}
  1. group 相当于 mysql 的 group by,传入的是要分组聚合的字段

示例:

{$group : {
   _id:"$name",
    count :{
     $sum:1
    }
  }
}

与 mysql 对比示例

  1. 分组查询count
# mysql
select name,count(*) from table group by name;

# mongo shell
db.collection.aggregate([{$group:{_id:'name',count:{$sum:1}}}])
  1. 先筛选后分组查询
# mysql
select name,count(*) from table where os='win'; group by name;

# mongo shell
db.collection.aggregate([{$match:{os:'win'}},{$group:{_id:'name',count:{$sum:1}}}])
  1. 先分组查询后筛选结果
# mysql
select name,count(*) from table group by name where os='win' ;

# mongo shell
db.collection.aggregate([{$group:{_id:'name',count:{$sum:1}}},{$match:{os:'win'}}])

pymongo 操作

待补充

这篇关于mongodb 聚合查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!