MongoDB文档翻译-Map-Reduce

英文原文地址:https://docs.mongodb.com/v3.2/core/map-reduce/
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。

Map-Reduce

Map-reduce是一种把大量数据变成有用的聚集结果的数据处理模式。对于map-reduce操作,MongoDB提供了mapReduce数据库命令。

考虑以下map-reduce操作:
这里写图片描述
在该map-reduce操作中,MongoDB对每个输入文档(即集合中匹配查询条件的文档)应用map阶段。map函数产生键-值对。对于这些有多个值的键,MongoDB应用reduce阶段,收集并精简聚集数据,然后把结果保存在一个集合中。可选地,reduce函数的输出可以通过一个最终的函数,以进一步精简或处理聚集结果。

MongoDB中所有的map-reduce函数都是Javascript函数,运行在mongod进程中。Map-reduce操作把单个集合的文档作为输入,在map阶段开始前,可以执行任意的排序或者限制操作。mapReduce可以把map-reduce操作的结果作为文档返回,或者把结果写入到集合中。输入和输出的集合都可以是分片的。

注意:

对于大多数聚集操作,聚集管道提供了更好的性能,更一致的接口。然而,map-reduce操作提供了一些聚集管道所没有的灵活性。

Map-Reduce Javascript函数

在MongoDB中,map-reduce操作使用自定义的Javascript函数来映射值到键,或者关联值到键。如果一个键有多个值映射到它,操作中该键的值会被归约为一个对象。

自定义Javascript函数的使用对map-reduce操作提供了灵活性。例如,当处理一个文档时,map函数可以创建多个键,或者不映射。在Map-reduce的最后阶段,Map-reduce操作也可以使用自定义Javascript函数来对结果做最终的修改,例如执行额外的计算。

Map-Reduce行为

MongoDB中,map-reduce操作可以把结果写入到集合中,或者在线返回结果。如果把结果写入到集合中,你可以对同样的输入集合做后续的map-reduce操作,与之前的结果合并/替换,合并或者归约。详情和例子请查看mapReduce增量式Map-Reduce

在线返回map-reduce操作的结果时,返回的文档必须在**BSON文档大小限制内,目前是16M。关于map-reduce操作的其它限制和约束,查看`mapReduce参考页面。

MongoDB支持在分片集合上执行map-reduce操作。Map-reduce操作也可以把结果输出到分片集合中。参见Map-Reduce与分片集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值