0

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

我从快速通道介绍开始。我找不到检索正确数据的方法。

我正在尝试这个查询(从这里):

{"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}.

怎样才能做到这一点?

4

1 回答 1

1

在传递给映射阶段的函数中,如果不满足条件,则返回键 ([value.key]) 或不返回任何内容 ([])。这就是为什么您只看到键的原因。

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

如果该函数改为返回 [value],则将返回记录的完整标识符(存储桶和键),并且可以在此之后链接其他映射阶段函数。这将允许进一​​步处理,并可能更容易重用过滤。如果您在处理结束时仍想获取返回记录的数据,则有一个现有函数可以做到这一点。规格如下:

{"map":{"language":"erlang","module":"riak_kv_mapreduce","function":"map_object_value"}}

于 2012-10-04T10:53:14.750 回答