我正在尝试mapreduce中的一个函数,该函数对数据进行排序并返回它。当输入查询中的所有存储桶密钥对都存在于 riak 集群中时,它运行良好。当存储桶/密钥对不存在时,它会给出如下所示的输出。
[{"not_found":{"bucket":"newspaper-issue","key":"56276","keydata":"undefined"}}]
无法从映射阶段删除此输出,即使我刚刚在映射阶段return []
,它也会返回这个对象。
我的问题是我如何避免此输出,因为在输入中可能会缺少一些存储桶/键。
地图函数是这样的:
"language" => "javascript",
"source" => "function(value,keyData,arg){
return []
},
"keep"=>true
我看到这已经在我们的邮件列表中为您回答了,但希望在 SO 上也能找到答案:
有一个内置的JS函数可以在你的reduce阶段使用来解决这个问题; filterNotFound()
return Riak.filterNotFound(your_object_passed_from_map_phase);