大家都知道,mongodb是一个非关系型数据库,也就是说,mongodb数据库中的每张表是独立存在的,表与表之间没有任何依赖关系。在mongodb中,除了各种CRUD语句之外,还给我们提供了聚合和mapreduce统计的功能,这篇文章主要来跟大家聊聊mongodb的mapreduce的操作。
Map-Reduce部分:Map-Reduce相当于关系型数据库中的group by,主要用于统计数据之用。mapreduce的概念我就不赘述了,大家自己去查查。
映射化简(官网截取)
映射化简是一种将大量数据转换为有价值的*聚合*结果的数据处理方式。在MongoDB中,使用 mapReduce 命令来执行映射化简的操作。
请看下面的映射化简操作:

在这个映射化简操作中,MongoDB对每个输入文档(例如集合中满足查询条件的文档)执行了*map*操作。映射操作输出了键值对结果。对那些有多个值的关键字,MongoDB执行*reduce*操作,收集并压缩了最终的聚合结果。然后MongoDB把结果保存到一个集合中。化简函数还可以把结果输出到*finalize*函数,进一步对聚合结果做处理,当然这步是可选的。
在MongoDB中,所有的映射化简函数都是使用JavaScript编写,并且运行在 mongod 进程中。映射化简操作使用一个集合中文档作为*输入*,并且可以在映射阶段之前执行任意的排序和限定操作。

本文介绍 MongoDB 中 Map-Reduce 的基本概念与应用场景,并通过实战案例演示如何进行数据统计,重点讲解 map 和 reduce 函数的设计及注意事项。
最低0.47元/天 解锁文章
1546

被折叠的 条评论
为什么被折叠?



