zoukankan      html  css  js  c++  java
  • 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'});

  • 相关阅读:
    Redis安装测试
    linux 查看磁盘空间大小
    冷备份与热备份、双机热备与容错
    IDEA在编辑时提示could not autowire
    IntelliJ IDEA 快捷键和设置
    POI实现EXCEL单元格合并及边框样式
    metaq架构原理
    二叉树
    开启“树”之旅
    巧妙的邻接表(数组实现)
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/4967028.html
Copyright © 2011-2022 走看看