如何在riak map / reduce中格式化返回的数据

时间:2012-10-03 15:56:15

标签: riak

我试图让riak返回特定数据而不是键。

我开始使用fasttrack介绍。我找不到一种方法来检索正确的数据。

我正在尝试使用此查询(from here):

{"inputs":"goog",
 "query":[{"map":{"language":"javascript",
                  "source":"function(value, keyData, arg) { var data = Riak.mapValuesJson(value)[0]; if(data.High && parseFloat(data.High) > 600.00) return [value.key]; else return [];}",
                  "keep":true}}]
}

我正在尝试检索一系列对象,例如{"Date":"YYYY-MM-DD","Open":123,"Close":123,"Volume":12345}

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

在传入地图阶段的函数中,如果未满足条件,则返回键([value.key])或不返回任何值([])。这就是你只看到钥匙的原因。

如果您改为将[value.key]更改为[data],您应该会看到要返回的记录的实际数据。

如果函数返回[value],则返回记录(桶和密钥)的完整标识符,并且可以在此之后链接其他映射阶段函数。这将允许进一​​步处理并且可以使重用过滤更容易。如果您在处理结束时仍然想要获取返回的记录的数据,那么现有的函数就是这样做的。规范如下:

{ “地图”:{ “语言”: “二郎”, “模块”: “riak_kv_mapreduce”, “功能”: “map_object_value”}}