美文网首页
MongoDB聚合操作1——单目的聚合操作

MongoDB聚合操作1——单目的聚合操作

作者: 我是一名搬运工 | 来源:发表于2019-07-21 19:27 被阅读0次

MongoDB的聚合操作主要是对数据的批量处理。一般都是将记录按条件分组之后进行一系列求最大值,最小值,平均值的简单操作,也可以对记录进行数据统计,数据挖掘的复杂操作。聚合操作的输入是集中的文档,输出可以是一个文档也可以是多个文档。

MongoDB 提供了三种强大的聚合操作:

  • 单目的聚合操作(Single Purpose Aggregation Operation)
  • 聚合管道(Aggregation Pipeline)
  • MapReduce 编程模型

Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复杂的聚合逻辑。MongoDB不允许Pipeline的单个聚合操作占用过多的系统内存,如果一个聚合操作消耗20%以上的内存,那么MongoDB直接停止操作,并向客户端输出错误消息。

本篇主要讲解 单目的聚合操作(Single Purpose Aggregation Operation)。

一、单目的聚合操作

单目的聚合命令常用的有:count() 和 distinct()。以 distinct() 为例,其工作流程如下:

image

1.1 count

count用于返回集合中的文档数量。
示例
求出集合中 job_base-accdate 值大于 2018-11-06 的文档个数

db.getCollection('job_create').find({'job_base-accdate': {$gt: new Date('06/11/2018')}}).count()

等价于

db.getCollection('job_create').count({'job_base-accdate': {$gt: new Date('06/11/2018')}})

1.2 distinct

distinct用于去重
示例
对 job_base-jid 值进行去重操作

db.getCollection('job_create').distinct('job_base-jid')

相关文章

网友评论

      本文标题:MongoDB聚合操作1——单目的聚合操作

      本文链接:https://www.haomeiwen.com/subject/gokglctx.html