3 使用示例
下面举了一些常用的mongo聚合例子和mysql对比,假设有一条如下的数据库记录(表名:zips)作为例子:
3.1 统计所有数据
SQL的语法格式如下
select count(1) from zips;
mongoDB的语法格式
db.zips.aggregate([ { "$group": { "_id": null, "count": { "$sum": 1 } } } ])
3.2 对所有城市人数求合
SQL的语法格式如下
select sum(pop) AS tota from zips;
mongoDB的语法格式
db.zips.aggregate([ { "$group": { "_id": null, "total": { "$sum": "$pop" } } } ])
3.3 对城市缩写相同的城市人数求合
SQL的语法格式如下
select state,sum(pop) AS tota from zips group by state;
mongoDB的语法格式
db.zips.aggregate([ { "$group": { "_id": "$state", "total": { "$sum": "$pop" } } } ])
3.4 state重复的城市个数
SQL的语法格式如下
select state,count(1) AS total from zips group by state;
mongoDB的语法格式
db.zips.aggregate([ { "$group": { "_id": "$state", "total": { "$sum": 1 } } } ])
3.5 state重复个数大于100的城市
SQL的语法格式如下
select state,count(1) AS total from zips group by state having count(1)>100;
mongoDB的语法格式
db.zips.aggregate([ { "$group": { "_id": "$state", "total": { "$sum": 1 } } }, { "$match": { "total": { "$gt": 100 } } } ])