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 に答える