首页 > 数据库 > MongoDB > 正文

10天掌握MongoDB之五:聚合操作

2020-03-14 13:23:21
字体:
来源:转载
供稿:网友

聚合操作 - COUNT

// count 操作

db . collection . count ({

'status ' : 1

}

提示:创建索引会大大提升count的性能。

聚合操作 - DISTINCT

distinct是用来找出给定条件的所有不同的值的。

// distinct

db . address . distinct (

" zip - code " ,

{

age : 30

}

);

聚合操作 - GROUP

group是较为复杂的聚合操作,它与关系型数据库中的GROUP BY类似,但更加强大。group先选定分组依据的键,然后将集合根据键值的不同分成若干组。之后再聚合每一组内的文档产生查询结果。

-- sql 伪代码

SELECT a , b , SUM ( c ), CSUM

FROM COLL

WHERE active = 1

GROUP BY a , b

// MongoDB

db . coll . group ({

'key ' : {

'a ' : true ,

'b ' : true

},

'cond ' : { ' active' : 1 },

'reduce ' : f unction ( obj , prev ) {

prev . csum += obj . c ;

},

'initial ' : { 'csum' : 0 }

});

参数说明:

key:分组依据;

cond:查询条件;

reduce:聚合操作;

initial:指定聚合计数器的初始对象;

GROUP完成器

完成器可以用来精简结果集。也就是对结果集进行进一步的处理。

之所以会提供这个方法,是因为MongoDB的group操作有个特殊要求,即:返回结果必须能够完全包含在1个文档之内(之前是4M,现在是16M),所以就必须允许对结果集进行精简处理。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表