• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【MongoDB】MongoDB数据库之MapReduce编程模型

mysql 搞代码 4年前 (2022-01-09) 17次浏览 已收录 0个评论
文章目录[隐藏]

刚开始阅读《Mongodb入门手册》时候看到mapreduce,当时感觉好难,就直接忽略了。现在重新看到这部分知识的时候,痛下决心学习这块知识。 一、概念说明 MongoDB的MapReduce相当于Mysql中“group by”,在mongodb上使用mapreduce执行并行数据统计很容易;使用M

刚开始阅读《Mongodb入门手册》时候看到mapreduce,当时感觉好难,就直接忽略了。现在重新看到这部分知识的时候,痛下决心学习这块知识。

一、概念说明

MongoDB的MapReduce相当于Mysql中“group by”,在mongodb上使用mapreduce执行并行数据统计很容易;使用MapReduce要实现两个函数: map 和 reduce.

map函数调

本文来源gaodai.ma#com搞##代!^码@网3

用emit(key,value)遍历collection中所有的记录,将key和value传递给Reduce函数执行处理。Map函数和Reduce函数可以使用javascript来实现。下面我们来学习下mapreduce的方法参数:

二、举例说明

1. 创建初始化数据

2. Map进行分组

Map函数必须调用emit(key,value)返回键值对,使用this访问当前待处理的document.在本例中,map函数对students表按classid进行分组:

value可以使用json object传递(支持多个属性值),如下面代码表示:

emit(this.classid,{count:1})

3. Reduce聚合计算

Reduce函数传递的参数类似与group 效果,将map返回的键值序列组合成{key,[value1,value2,value3,…]}传递给reduce,如下面代码所示:

Reduce函数对于这些values进行统计,在本例中,reduce函数就是分别针对班级的记录数量进行执行求和计算,返回结果是json object 对象

4. Result获取结果

计算后如何获得结果,这正是result函数的作用。可以执行db.结果集。find()可以获得结果。其中结果集合可以通过out变量指定。

5. Finialize格式化输出

利用finalize()可以对reduce的结果进行输出样式的格式化处理。vcD4KPHA+PGltZyBzcmM9″http://www.2cto.com/uploadfile/Collfiles/20141206/2014120609164678.png” alt=”\”>

6. options定制输出

还可以添加更多的控制细节,只需要在res函数的定义中加入一个query参数,既可以进一步过滤结果集,如下面的代码所示:

对比查询结果:


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【MongoDB】MongoDB数据库之MapReduce编程模型

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址