Map-Reduce 是 mongodb 处理批量数据的大杀器,凡是数据量大并且定时处理能满足需求的,都可以试着扔给 mongodb,让它去 Map-Reduce。
以下截取自文档的图,可以清楚的说明 Map-Reduce 的执行过程。先看图:
回答问题,Map-Reduce 的执行过程是先 map 然后 reduce 么?
是?恭喜入坑!而且是自己挖坑自己填。仔细再看一遍上文的图,看到那个灰色的箭头了?不是每次 map 都有 reduce 的!
如果 map 的结果不是数组,mongodb 就不会执行 reduce。很合理的处理逻辑。
然后,只有入过坑才能意识到自己挖的坑:对于 map 到的数据,如果在 reduce 时希望做统一的处理,一定会发现数据结果是不完整的。
mgo 时间
mgo 是 golang 的 mongodb driver。
首先,构建测试程序。 |