mongoDB MapReduce

MapReduce功能强大,分两步操作。

Map:将数据分别取出。

Reduce:负责数据的最后的处理。

使用MapReduce操作最终会将处理结果保存在一个单独的集合里面,而最终的处理效果如下。

范例:统计出各性别的人数、平均工资、最低工资、雇员姓名

总结:

理解MapReduce思路。

Map函数:emit("分组",{"$sum":"$column","$count_1":"$column_2"});    //Map函数的emit把数据分好组。

Reduce函数:处理分组数据(分组数据:Map函数分组数据),有多小个分组就执行多小次Reduce函数。Reduce函数每次执行处理一组数据,通过遍历处理计算一组数据。

时间: 2024-10-13 02:27:01

mongoDB MapReduce的相关文章

mongodb mapreduce用法

mongoDB的MapReduce简介 分类:            MongoDB2012-12-06 21:378676人阅读评论(2)收藏举报 MongoDB MapReduce MapReduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE).这样做的好处是可以在任务被分解后,可以通过大量机器进行并行计算,减少整个操作的时间. 上面是MapReduce的理论部分,下面说实际的应用,下面以MongoDB MapReduce为

mongodb mapreduce使用总结

文章来自本人个人博客: mongodb mapreduce使用总结 ? 大家都知道,mongodb是一个非关系型数据库,也就是说,mongodb数据库中的每张表是独立存在的,表与表之间没有任何依赖关系.在mongodb中,除了各种CRUD语句之外,还给我们提供了聚合和mapreduce统计的功能,这篇文章主要来跟大家聊聊mongodb的mapreduce的操作. ?mapreduce的概念我就不赘述了,大家自己去查查吧. ?在mongodb中,mapreduce的语法如下: ? db.table

MongoDB MapReduce学习笔记

MapReduce应该算是MongoDB操作中比较复杂的了,自己开始理解的时候还是动了动脑子的,所以记录在此! 命令语法:详细看 db.runCommand( { mapreduce : 字符串,集合名, map : 函数,见下文 reduce : 函数,见下文 [, query : 文档,发往map函数前先给过渡文档] [, sort : 文档,发往map函数前先给文档排序] [, limit : 整数,发往map函数的文档数量上限] [, out : 字符串,统计结果保存的集合] [, ke

MongoDB:MapReduce基础及实例

背景 MapReduce是个非常灵活和强大的数据聚合工具.它的好处是可以把一个聚合任务分解为多个小的任务,分配到多服务器上并行处理. MongoDB也提供了MapReduce,当然查询语肯定是JavaScript.MongoDB中的MapReduce主要有以下几阶段: 1. Map:把一个操作Map到集合中的每一个文档 2. Shuffle: 根据Key分组对文档,并且为每个不同的Key生成一系列(>=1个)的值表(List of values). 3. Reduce: 处理值表中的元素,直到值

MongoDB MapReduce 实战<1>

需求,Mysql表中某日志表,要求统计数据的平均记录周期,在实践中学习,用Mysql可能比较麻烦,那就用用刚接触的MongoDB吧,也能跟去年研究的Hadoop沾点边,况且MongoDB支持MapReduce,去年一直想深入了解,但是太忙,没时间,正好现在研究看看. 使用命令行实在累人,所以使用了MongoVUE,这个工具. 开工了: 分析表结构,有用的字段一个是记录ID(可重复),一个是记录产生的时间: 将需要的字段和数据导入到MongoDB中: 编写第一个MapReduce,将记录产生的时间

第二部分 应用篇 第七章 MongoDB MapReduce

1.简介 MongoDB的MapReduce相当于MySQL中的group by,所以在MongoDB上使用Map/Reduce进行统计很容易,使用MapReduce要实现两个函数Map函数和Reduce函数,Map函数调用emit(key,value),遍历collection中所有的记录,将key与value传递给Reduce函数进行处理,Map函数和Reduce函数可以使用JavaScript来实现,可以通过db.runCommand或者mapReduce命令来执行一个MapReduce的

打算用mongodb mapreduce之前一定要知道的事!!!

mapreduce其实是分批处理数据的,每一百次重新reduce处理,所以到reduce里的数据如果是101条,那就会分2次进入. 这导致的问题就是在reduce中 如果 初始化 var count = 0:在循环中 count ++,最后输出的是1??? 避免都方法是,把数据存在返回的value里,这个value是会在循环进入reduce的时候重用的.在循环中 count  += value.count就能把之前都100加上了!!! 还有如果只有一条数据,那它不会进入reduce,会直接返回.

(15)mongodb mapReduce的概念及用法

mapReduce从功能上说类似于RDBMS中的group,它的强大之处在于很好的支持分布式.相比于group.aggregate,mapReduce的用法很简单,其实它的工作原理也很简单,下面介绍一下. mapReduce工作分为两步,一是映射,即map,将数据按照某一个规则映射到一个数组里,比如按照type或者name映射,同一个type或者name的数据形成一个数组,二是规约,即reduce,它接收映射规则和数组,然后计算.举例如下: 1.计算每个栏目的库存总量 var map=funct

(16)mongodb mapReduce分布式统计示例遇到的一个未解问题,求平均值不对,希望哪位大神给指点一下

mapReduce 的优势在于分布式,这一节记录一个分布式统计的示例,整个过程分为这几步:启动分布式服务.手动分片.导入数据.执行 mapReduce.下面单独说说这几步. 1.启动分布式服务 参考前面的第10节和第11节,不在重复说了. 2.手动分片: sh.enableSharding('test'); 用test库做分片 sh.shardCollection('test.dz',{sn:1}); 指定片键,test库的dz集合,sn为片键 mongos> for(var i=1;i<=8