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

原文地址:https://www.cnblogs.com/ywjfx/p/10230146.html

时间: 2024-08-03 07:45:39

mongdb mapReduce聚合操作的相关文章

mongdb aggregate聚合操作

1.数据准备 查看前一篇group操作 2.aggregate函数参数讲解 mysql mongdb===================WHERE --->$match GROUP BY --->$group HAVING --->$match SELECT --->$project ORDER BY --->$sort LIMIT --->$limit SUM() --->$sum COUNT() --->$sum 3.操作案例 #查询每个栏目下的商品数

Mongodb聚合操作之读书笔记

Mongodb聚合操作 读书笔记 mongodb,两种计算聚合pipeline和mapreduce pipeline查询速度快于mapreduce,但MapReduce能够在多台Server上并行执行复杂的聚合逻辑. mongodb不允许Pipeline的单个聚合操作占用过多的系统内存,如果一个聚合操作消耗20%以上的内存,那么mongodb直接停止操作,并向客户端输出错误消息. Pipeline方式使用db.collection.aggregate()函数进行聚合运算,运算速度较快,操作简单.

MongoDB中的聚合操作

根据MongoDB的文档描述,在MongoDB的聚合操作中,有以下五个聚合命令. 其中,count.distinct和group会提供很基本的功能,至于其他的高级聚合功能(sum.average.max.min),就需要通过mapReduce来实现了. 在MongoDB2.2版本以后,引入了新的聚合框架(聚合管道,aggregation pipeline ,使用aggregate命令),是一种基于管道概念的数据聚合操作. Name Description count Counts the num

mongo中的高级查询之聚合操作(distinct,count,group)

1.distinct的实现: db.consumerecords.distinct("userId"):键值去重  类似于mysql中的 select distinct userId from consumerecords db.consumerecords.distinct("userId",{act:"charge"}):过滤之后去重,类似于mysql中的select distinct userId from consumerecords w

hbase 聚合操作

hbase本身提供了 聚合方法可以服务端聚合操作 hbase中的CoprocessorProtocol机制. CoprocessorProtocol的原理比较简单,近似于一个mapreduce框架.由client将scan分解为面向多个region的请求,并行发送请求到多个region,然后client做一个reduce的操作,得到最后的结果. 先看一个例子,使用hbase的AggregationClient可以做到简单的面向单个column的统计. Java代码   @Test public 

MongoDB 聚合操作(转)

在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复杂的聚合逻辑.MongoDB不允许Pipeline的单个聚合操作占用过多的系统内存,如果一个聚合操作消耗20%以上的内存,那么MongoDB直接停止操作,并向客户端输出错误消息. 一,使用 Pipeline 方式计算聚合 Pipeline 方式使用db.collection.aggregate()函

聚合操作

聚合操作 Aggregate Performs a custom aggregation operation on the values in the collection. IList<String> strList =newList<String>(){"One","Two","Three","Four","Five"}; var commaSeperatedString = s

mongoDB与sql聚合操作对应图

SQL Terms, Functions, and Concepts MongoDB Aggregation Operators WHERE $match GROUP BY $group HAVING $match SELECT $project ORDER BY $sort LIMIT $limit SUM() $sum COUNT() $sum join No direct corresponding operator; however, the $unwindoperator allows

mongodb 聚合操作

1.首先举例分析下 mongodb 的聚合操作: 该操作表示根据whoisserver_id 字段分组 来统计每个分组下的 count数量: db.anhui.aggregate({$group:{_id:'$whoisserver_id',total:{$sum:1}}}) 查询出来的结果如下: 如果查询总的数量: db.anhui.aggregate({$group:{_id:null,total:{$sum:1}}}) 以下查询先根据条件过滤然后统计 db.anhui.aggregate(