美文网首页
mongodb mapreduce

mongodb mapreduce

作者: dayuoba | 来源:发表于2015-09-27 12:53 被阅读0次

主要是两个方法,map和reduce方法。
一个简单的示例

//定义map方法
var map = function() {};
//定义reduce方法
var reduce = function(key, values) {};
//定义callback
var callback = function(err, collection) {};
db.collection.mapReduce(map, reduce, {out:{},query:{}}, callback);
map方法
var map = function() {
    //书写要归档或者说映射的键和值
    //this指向一个文档对象
    emit(key, value)
}
//例如
//数据库有如下数据
{
   name: 'yuyang',
   age: 20
}
{
   name: 'yuyang',
   age: '30'
}

{
    name: 'dayu',
    age: 27
}
//看map函数是如何归档的
var map = function() {
    emit(this.name, this.age);
}
归档后的数据如下
{
    'yuyang': [20, 30],
    'dayu': [27]
}
//这就是map函数的作用通过emit(key, value),可以以key为新的key,把value集合成values给新的key。就像上面一样.
reduce方法
//继续使用归档后的数据做reduce
var reduce = function(key, values) {
     //redcue方法相当于对归档后的数据做一个遍历调用我们可以拿到每个key和对应的values.最终函数的返回值 会 绑定到key上面
    var age = 0;
    values.forEach(function(value) {
        age += value;
    });
     return age;
}; 
//reduce后的数据结构
{
  'yuyang': 50,
  'dayu': 27
}
//最终这个reduce后的数据或者说文档会放到一个collection中兵调用我们的callback函数

function callback(err, collection) {
    //我们最终要对map reduce后的数据的处理
    collection.find().toArray(function(err, results) {
        console.log(err || results);
    });
}


//到这基本就结束了 ,在回到接口api,重新看一下.
db.collection.mapReduce(map, reduce, {
    out: {
                //mapreduce 后数据写入的集合
        replace : 'tempCollection', 
        readPreference : 'secondary'
    },
        //mapreduce 前 我们对文档的query
    query: {
        date:{$gte: new Date('2015-07-07 00:00:00')}
    }
}, callback);

相关文章

  • MongoDB mapreduce 使用

    MapReduce介绍 MongoDB 中的MapReduce 使用JavaScript来作为查询语言,因此能表达...

  • mongodb mapreduce

    主要是两个方法,map和reduce方法。一个简单的示例

  • MongoDB MapReduce

    MapReduce 使用JavaScript作为“查询语言”。因此它能够表达任意复杂的逻辑。然而,这种强大是有代价...

  • mapReduce 映射,归纳

    维基:zh.wikipedia.org/wiki/MapReduce mongodb:db.collection....

  • 初试mongodb mapreduce

    初次试用了一下mongodb的mapreduce方法,总结了一些粗浅的认识,记录如下: 下面例子中,documen...

  • mongodb3 聚合之MapReduce

    mongodb3的MapReduce命令 如此庞大的命令,看似吓人。其实只有mapFunction和reduceF...

  • MongoDB基础之分组聚合函数讲解

    MongoDB 中主要有三个函数: group:分组统计 aggregate:简单聚合 mapReduce:强大统...

  • Mongodb高级篇-MapReduce

    Mongodb支持使用javascript编写mapreduce函数来做分布式数据处理。然而,这种强大是有代价的:...

  • MongoDB MapReduce 聚合操作

    MongoDB的聚合操作主要是对数据的批量处理。一般都是将记录按条件分组之后进行一系列求最大值,最小值,平均值的简...

  • MongoDB aggregate,mapreduce,聚合命令

    在mongodb中想要完成聚合操作,可以使用以下三种方式;但是很多时候这三个真是傻傻分不清楚,本文是来总结以下三种...

网友评论

      本文标题:mongodb mapreduce

      本文链接:https://www.haomeiwen.com/subject/pgswcttx.html