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 操作

待补充

posted @ 2021-04-12 13:40  JunCode  阅读(168)  评论(0编辑  收藏  举报