码迷,mamicode.com
首页 > 数据库 > 详细

mongodb 聚合查询

时间:2021-04-13 12:04:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:gre   示例   mysql   group by   mongo   star   agg   筛选条件   select   

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 聚合查询

标签:gre   示例   mysql   group by   mongo   star   agg   筛选条件   select   

原文地址:https://www.cnblogs.com/Jaryer/p/14647606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!