所以我是 mongodb 和 mapreduce 的新手,遇到了这个“怪癖”(或者至少在我看来是一个怪癖)
假设我的收藏中有这样的对象:
{'键':5,'值':5}
{'键':5,'值':4}
{'键':5,'值':1}
{'键':4,'值':6}
{'键':4,'值':4}
{'键':3,'值':0}
我的地图函数只是发出键和值
我的reduce函数只是简单地添加值并且在返回它们之前添加1(我这样做是为了检查reduce函数是否被调用)
我的结果如下:
{'_id':3,'值':0 }
{'_id':4,'值':11.0}
{'_id':5,'值':11.0}
正如您所看到的,对于键 4 和 5,我得到了 11 的预期答案,但是对于键 3(集合中只有一个带有该键的条目)我得到了意想不到的 0!
这是 mapreduce 的自然行为吗?对于 MongoDB?对于 pymongo(我正在使用)?