MongoDB聚合运算之mapReduce函数的使用(11)
mapReduce 随着"大数据"概念而流行.
其实mapReduce的概念非常简单,
从功能上说,相当于RDBMS的 group 操作
mapReduce的真正强项在哪?
答:在于分布式,当数据非常大时,像google,有N多数据中心,
数据都不在地球的一端,用group力所不及.
group既然不支持分布式,单台服务器的运算能力必然是有限的.
而mapRecuce支持分布式,支持大量的服务器同时工作,
用蛮力来统计.
mapRecuce的工作过程:
① map:
这个称为映射函数,里面会调用emit(key,value),集合会按照你指定的key进行映射分组。
② reduce:
这个称为简化函数,会对map分组后的数据进行分组简化,注意:在reduce(key,value)中的key就是emit中的key,value为emit分组后的emit(value)的集合,把数组(同一组)的数据,进行运算.
用mapReduce计算每个栏目的库存总量
map函数
var map = function() {
emit(this.cat_id,this.goods_number);
}
var reduce = function(cat_id,numbers) {
return Array.sum(numbers);
}
db.goods.mapReduce(map,reduce,{out:'res'});
结果保存到“res”中
db.res.find()
#用mapReduce计算每个栏目下商品的平均价格
var map = function() {
emit(this.cat_id,this.shop_price);
}
var reduce = function(cat_id,values) {
return Array.avg(values);
}
db.goods.mapReduce(map,reduce,{out:'res'});
转载于:https://www.cnblogs.com/yxlblogs/p/4967028.html
MongoDB聚合运算之mapReduce函数的使用(11)相关推荐
- MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)
聚合运算之group 语法: db.collection.group( { key:{key1:1,key2:1}, cond:{}, reduce: function(curr,result) { ...
- MongoDB系列--深入理解MongoDB聚合(Aggregation )
MongoDB中聚合(aggregate) 操作将来自多个document的value组合在一起,并通过对分组数据进行各种操作处理,并返回计算后的数据结果,主要用于处理数据(诸如统计平均值,求和等 ...
- limit mongodb 聚合_MongoDB 统计 group 操作用不了,试试 mapReduce 吧
问题回顾 今天,同事小张 Q 我, 说自己辛苦花了一天的时间,基于 mongodb 数据库开发的待办统计功能一直报错! 于是笔者花了近半小时了解小张的开发需求以及代码实现方式,大致明白问题出在对待办 ...
- MongoDB聚合查询 Pipeline 和 MapReduce
MongoDB聚合查询 MongoDB聚合查询 什么是聚合查询 Pipeline聚合管道方法 聚合流程 详细流程 聚合语法 常用聚合管道 $count $group $match $unwind $p ...
- 快速掌握mongoDB(二)——聚合管道和MapReduce
上一节简单介绍了一下mongoDB的增删改查操作,这一节将介绍其聚合操作.我们在使用mysql.sqlserver时经常会用到一些聚合函数,如sum/avg/max/min/count等,mongoD ...
- C# 中奇妙的函数–6. 五个序列聚合运算(Sum, Average, Min, Max,Aggregate)
今天,我们将着眼于五个用于序列的聚合运算.很多时候当我们在对序列进行操作时,我们想要做基于这些序列执行某种汇总然后,计算结果. Enumerable 静态类的LINQ扩展方法可以做到这一点 .就像之前 ...
- MongoDB 聚合操作
MongoDB 聚合操作 在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多 ...
- limit mongodb 聚合_MongoDB 聚合操作(转)
在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复 ...
- MongoDB 聚合管道
MongoDB 聚合管道 聚合管道概述 需要注意的几个问题: 聚合管道操作符 聚合管道的使用 $project 指定文档显示的方式 连接字段$concat用于连接字符串(参数必须是字符串类型数组) 对 ...
- mongodb聚合查询优化_MongoDB聚合查询详解
聚合操作主要用于处理数据并返回计算结果.聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和.平均值.最大值.最小值)以返回单个结果. MongoDB 提供了三种执行聚合的方法 ...
最新文章
- 基于STC8G1K17的信号转换方案
- 鸿蒙系统突破,华为解锁新成就!新系统用户突破1亿,鸿蒙系统也传来了新消息...
- 《深入理解JVM.2nd》笔记(一):走进Java
- mysql 单块读 多块读_dbfilesequentialread等待事件
- 解决 Beyond Compare 3 许可证密钥被撤销
- python顺序结构的关键字_Python相关数据结构的排序
- linux 配置ssh免密码登录脚本
- My Feedback for Windows 10 IoT Core on Feedback Hub App (4/1/2017-1/23/2018)
- 转 未能使用提供程序 RsaProtectedConfigurationProvider 进行解密 的解决办法
- 新手购买单反终极攻略--谈谈现场验机的要领与要点
- 10.24程序员节日快乐
- 目前最火热的创新创业项目有哪些?
- uni-app 支付宝小程序授权,获取用户基础信息(头像图片地址、昵称、性别、国家码、省份、所在市区)
- MHDD修复UNC和TIMEOUT
- TensorFlow在win10上安装--精简教程
- 网工知识角-思科华为的网络工程师常用工具盘点
- NTFS 之 LCN,VCN
- 浅谈伺服电机三种控制方式
- 【python】openpyxl常用方法
- @Primary 使用
热门文章
- Spring boot 2.1版本、2.3及以上版本使用actuator实现优雅关闭程序
- 解决Mysql安装之后没有my.ini配置文件问题
- gdal-3.1.2-release下载页面出错
- 获取js文件后的参数
- Python selenium报错:selenium.common.exceptions.ElementClickInterceptedException
- 基于C++11实现线程池的工作原理
- 计算机组成原理时序电路报告,时序电路实验报告
- (day 52 - 先序后序遍历计数 ) 剑指 Offer 55 - II. 平衡二叉树
- 服务中没有listen_Odoo 中的 IM(即时通讯)实现分析
- python 持续集成 教程_dotnet 部署 github 的 Action 进行持续集成|简明python教程|python入门|python教程...