码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB聚合运算之mapReduce函数的使用(11)

时间:2015-11-15 19:05:03      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

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‘});

 

MongoDB聚合运算之mapReduce函数的使用(11)

标签:

原文地址:http://www.cnblogs.com/yxlblogs/p/4967028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!