Mongodb Aggregation group()分组操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb Aggregation group()分组操作相关的知识,希望对你有一定的参考价值。
参考技术AMongo的分组操作有两种方式: aggregate($group:) 和 group()
$group: _id: <expression>, <field1>: <accumulator1> : <expression1> , ...
为必选字段,为被分组字段,可为空或null
为可选字段,其中可包含一下运算符:
1.仅分组,对issue_xjtf表中sp1,sp2进行分组
相当于sql
db.collection.group( key, reduce, initial [, keyf] [, cond] [, finalize] )
前三个是必备参数,“[]”中是可选参数
可以放用来分组的字段,并且会返回其中字段(group by 后面的字段)
是在分组操作期间对文档进行操作的聚合函数。可以返回总和或计数。该函数有两个参数:当前文档;该组的聚合结果文档。
对结果中文档,字段进行初始化
对数据筛选的条件,相当于where
1. count :取xbgi表中,article_pubdate值大于2000-01-01的数据,并分组计数
2. max :取sjwd表中,ric_publication_coden为9529a8f7-3eef-431a-a0cd-e49d601417df,用article_year分组计数,取其最晚日期。
3. sum :在表total_journal_issue中以journal_id分组,并获取article_count总数
用Navicat 执行group()时,分组值超过20000,会报如下错误(未检测具体原因):
MongoDB 学习笔记之 Aggregation Pipeline
Aggregation Pipeline:
常用操作符介绍:
$project:包含、排除、重命名和显示字段
$match:查询,需要同find()一样的参数
$limit:限制结果数量
$skip:忽略结果的数量
$sort:按照给定的字段排序结果
$group:按照给定表达式组合结果
$lookup: 左连接
$unwind:展开嵌入数组
定义comments和leftT集合:
$project:
$match:
$limit:
$skip:
$sort:
$group:
$lookup:
$unwind:
以上是关于Mongodb Aggregation group()分组操作的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB 学习笔记之 Aggregation Pipeline
MongoDB $reduce(aggregation) 组与数组中嵌套文档的总和并按组计数
MongoDB 聚合管道(Aggregation Pipeline)