大数据技术之MongoDB聚合介绍
沉沙 2019-04-08 来源 : 阅读 615 评论 0

摘要:本篇文章探讨了大数据技术之MongoDB聚合介绍,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了大数据技术之MongoDB聚合介绍,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

大数据技术之MongoDB聚合介绍

聚合是处理数据记录和返回计算结果的操作。MongoDB提供了丰富的聚合操作集合,以对数据集检测和实施计算。在mongod实例上运行数据集合,简化了应用代码,限制了资源的使用。

像查询一样,在MongoDB中聚合操作使用文档的集合作为输入,以一个或多个文档的形式返回结果。

聚合方式

聚合管道

MongoDB 2.2引入了一个新的聚合框架,以数据处理管道为主题建模。文档进入多级管道,转换为一个聚合结果。

最基本管道级提供像查询操作的过滤,和文档转换以修改输出文档的形式。

其他管道操作通过指定一个或多个字段提供分组和排序文档的工具,以及聚合包含文档的数组的内容的工具。此外,管道级可以对任务使用像计算平均数或连接字符串的操作符。

在MongoDB中管道使用本地操作提供有效的数据聚合,是数据聚合的更好方式。

Map-Reduce

MongoDB也提供了map-reduce操作来实施聚合。通常,map-reduce操作有两个阶段:map阶段处理每个文档,对于每个输入文档输出一个或多个对象;reduce阶段组合map操作的输出。可选的,map-reduce可以有一个finalize级,以对结果做最后的修改。像其他聚合操作,map-reduce可以指定一个查询条件来查询输入文档以及排序和限制结果。

Map-reduce使用客户端JavaScript函数来实施map和reduce操作,以及可选的finalize操作。而客户端JavaScript相对聚合管道提供更大的伸缩性,通常,map-reduce更低效,比聚合管道更复杂。

注意:

从MongoDB 2.4开始,某些mongo shell功能和属性在map-reduce操作中不可访问。MongoDB 2.4也提供了在相同时间运行多个JavaScript操作的支持。在MongoDB 2.4之前,JavaScript代码以单线程执行,导致了map-reduce的并行问题。

单一目的聚合操作

对于大量的普通单一目的聚合操作,MongoDB提供了特定目的的数据库命令。这些普通的聚合操作是:返回匹配文档的记录数,返回一个字段的不通值,基于一个字段值分组数据。所有这些操作从一个单一集合聚合文档。而这些操作提供普通聚合处理的单一访问,它们缺乏聚合管道和map-reduce的伸缩性和扩展性。

额外的属性和行为

聚合管道和map-reduce都可以在分片集合上操作。Map-reduce操作也可以输出为分片集合。更多信息,可以查看《聚合管道和分片集合》和《Map-Reduce和分片集合》。

聚合管道可以使用索引来在某些级上提供性能。此外,聚合管道也有内部的优化方面。更多信息,可以查看《管道操作符和索引》和《聚合管道优化》。

对于聚合管道,map-reduce,和特定的分组功能的属性比较,可以查看《聚合命令比较》。

      本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程