Mangodb学习--聚合管道之$group

Mangodb学习–聚合管道之$group

一、$group是什么?

Mangodb学习--聚合管道之$group_第1张图片
$group相当于mysql中的group by,分组函数。其不会输出具体的文档数据,而是输出统计数据。_id:分组条件:_id:name、_id:{name,title}

二、使用方法

1.操作符

Mangodb学习--聚合管道之$group_第2张图片

注意:在这里插入图片描述
解决内存限制需要将聚合管道函数aggregate的option中的allowDiskUse设置为true。

2.示例

Mangodb学习--聚合管道之$group_第3张图片

_id:null,表示对全文进行检索,不设置分组条件。
_$sum:1:表示对数据的数量进行求和,以count为别名显示。
$sum:"$favCount":表示对收藏数(favCount)进行求和,求和后以pop为别名显示
$avg:"$favCount":表示对收藏数(favCount)取平均值,以avg为别名显示

演示:
在这里插入图片描述
**---------------------------------------------------
Mangodb学习--聚合管道之$group_第4张图片
Mangodb学习--聚合管道之$group_第5张图片
**---------------------------------------------------
Mangodb学习--聚合管道之$group_第6张图片
Mangodb学习--聚合管道之$group_第7张图片
**---------------------------------------------------Mangodb学习--聚合管道之$group_第8张图片
Mangodb学习--聚合管道之$group_第9张图片
注解:根据$author.name进行group分组,然后每个作者的作品属性可能有重复的,所以可以用addToSet去重。

你可能感兴趣的:(Mangodb,mongodb,java)