我试图让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}
。
如何实现这一目标?
答案 0 :(得分:1)
在传入地图阶段的函数中,如果未满足条件,则返回键([value.key])或不返回任何值([])。这就是你只看到钥匙的原因。
如果您改为将[value.key]更改为[data],您应该会看到要返回的记录的实际数据。
如果函数返回[value],则返回记录(桶和密钥)的完整标识符,并且可以在此之后链接其他映射阶段函数。这将允许进一步处理并且可以使重用过滤更容易。如果您在处理结束时仍然想要获取返回的记录的数据,那么现有的函数就是这样做的。规范如下:
{ “地图”:{ “语言”: “二郎”, “模块”: “riak_kv_mapreduce”, “功能”: “map_object_value”}}