MapReduce in MongoDB

MongoDB の MapReduce

在Hadoop的学习中已经接触过MapReduce了,它是一个很成熟的计算模型,将大批量的工作(也就是数据)分解(MAP映射)执行,最后将结果合并成最终的Reduce.

MongoDB就提供了一个很灵活的MapReduce

MapReduce的基本语法

>db.collection.mapReduce(
   function() {emit(key,value);},  //map 函数
   function(key,values) {return reduceFunction},   //reduce 函数
   {
      out: collection,
      query: document,
      sort: document,
      limit: number
   }
)

使用Map Reduce需要实现两个函数,Map和Reduce,Map调用了emit(key,value),遍历了collection(也就是表)里面的所有记录,并且将key和value传给reduce函数进行处理

说明

  • map:映射函数(生成键值对的序列,所谓reduce的参数)
  • reduce统计函数,reduce函数的任务就是将key-values变成key_value(将Values数组变成一个单一的value)
  • out统计结果存放集合(如果不指定的话,会使用临时集合,客户端断开以后就会删除)
  • query是一个筛选条件(不是每个文档都会触发map函数)
  • sort和limit

做个小测试,往里面插入一点数据试一下

截图1.png

collection中的数据如下图所示
截图3.png
选取已发布的文章,用user_name分组,使用find函数展示
截图2.png

map函数和reduce函数都可以使用JS来实现,所以非常方便

转载于:https://www.cnblogs.com/QuixoteY/p/11127652.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值