【发布时间】:2012-06-16 19:34:06
【问题描述】:
所以我一般是 mongodb 和 mapreduce 的新手,遇到了这个“怪癖”(或者至少在我看来是一个怪癖)
假设我的收藏中有这样的对象:
{'key':5, 'value':5}
{'key':5, 'value':4}
{'key':5, 'value':1}
{'key':4, 'value':6}
{'key':4, 'value':4}
{'key':3, 'value':0}
我的 map 函数只是发出键和值
我的 reduce 函数只是在返回它们之前添加值 AND 加 1(我这样做是为了检查是否调用了 reduce 函数)
我的结果如下:
{'_id': 3, 'value': 0}
{'_id':4, '值': 11.0}
{'_id':5, '值': 11.0}
如您所见,对于键 4 和 5,我得到预期的答案 11,但对于键 3(集合中只有一个条目与该键)我得到意外的 0!
这是 mapreduce 的自然行为吗?对于 MongoDB?对于 pymongo(我正在使用)?
【问题讨论】: