mongdb mapReduce聚合操作
1、数据准备
请看group操作
2、mapReduce名词解释
mapReduce 随着"大数据"概念而流行.其实mapReduce的概念非常简单,从功能上说,相当于RDBMS的 group 操作 mapReduce的真正强项在哪?
答:在于分布式,当数据非常大时,像google,有N多数据中心,数据都不在地球的一端,用group力所不及. group既然不支持分布式,单台服务器的运算能力必然是有限的.而mapRecuce支持分布式,支持大量的服务器同时工作,用蛮力来统计. mapRecuce的工作过程:
map-->映射
reduce->归约 map: 先是把属于同一个组的数据,映射到一个数组上.cat_id-3 [23,2,6,7]
reduce: 把数组(同一组)的数据,进行运算.
3、mapReduce实操
1、用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'}); 2、用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'});
mapReduce详细解析可以查看:https://www.cnblogs.com/chenpingzhao/p/7913247.html
mongdb mapReduce聚合操作的更多相关文章
- mongdb group聚合操作
1.数据准备 [{"goods_id":1,"cat_id":4,"goods_name":"KD876"," ...
- mongdb aggregate聚合操作
1.数据准备 查看前一篇group操作 2.aggregate函数参数讲解 mysql mongdb===================WHERE --->$match GROUP BY -- ...
- MongoDB学习笔记——聚合操作之MapReduce
MapReduce MongoDB中的MapReduce相当于关系数据库中的group by.使用MapReduce要实现两个函数Map和Reduce函数.Map函数调用emit(key,value) ...
- MongoDB 聚合操作
在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复 ...
- MongoDB 聚合操作(转)
在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复 ...
- MongoDB中的聚合操作
根据MongoDB的文档描述,在MongoDB的聚合操作中,有以下五个聚合命令. 其中,count.distinct和group会提供很基本的功能,至于其他的高级聚合功能(sum.average.ma ...
- MongoTemplate聚合操作
Aggregation简单来说,就是提供数据统计.分析.分类的方法,这与mapreduce有异曲同工之处,只不过mongodb做了更多的封装与优化,让数据操作更加便捷和易用.Aggregation操作 ...
- hbase 聚合操作
hbase本身提供了 聚合方法可以服务端聚合操作 hbase中的CoprocessorProtocol机制. CoprocessorProtocol的原理比较简单,近似于一个mapreduce框架.由 ...
- mongodb的聚合操作
在mongodb中有时候我们需要对数据进行分析操作,比如一些统计操作,这个时候简单的查询操作(find)就搞不定这些需求,因此就需要使用 聚合框架(aggregation) 来完成.在mongodb ...
随机推荐
- linux 网卡相关命令
1. ifconfig //查看网络相关信息 2. ifconfig eth0 192.168.1.103 netmask 255.255.255.0 //配置eth0的IP地址 3. route - ...
- Cobbler自动化装机脚本
#!/bin/bash ens33_ip=192.168.1.3 ens33_gateway=192.168.1.1 ens37_ip=192.168.207.2 dhcp_wd=192.168.20 ...
- ubuntu学习笔记-tar 解压缩命令详解(转)
tar 解压缩命令详解 -c: 建立压缩档案 -x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能 ...
- TCP_Wrappers访问控制
一.TCP_Wrappers简介 对有状态连接的特定服务进行安全检测并实现访问控制,它以库文件形式实现,某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的 ...
- Ribbon整合Consul,出现No instances available for XXX 异常
先贴代码: @RestController public class CallHelloController { @Autowired private LoadBalancerClient loadB ...
- JMS 重点是JMS消息结构讲解
这部分之前认识的不是很清楚,转载记录下,转载自:https://www.cnblogs.com/Zender/p/9098410.html 阅读目录 一,消息服务 二,JMS 回到目录 小时(1000 ...
- join on 和group
左边的表是article文章表,右边的是comment文章回复表. 今天mysql查询的时候,遇到了有趣的事,任务是查询数据库需要得到以下格式的文章标题列表,并按 ...
- jQuery.getJSON(url, [data], [callback])
jQuery.getJSON(url, [data], [callback]) 概述 通过 HTTP GET 请求载入 JSON 数据. 在 jQuery 1.2 中,您可以通过使用JSONP形式的回 ...
- rander()函数执行条件
调用this.setState({}),如果数据改变了,rander()就行执行
- codeforces666A
Reberland Linguistics CodeForces - 666A First-rate specialists graduate from Berland State Institute ...