0

Riak.mapValuesJson() と JSON.parse() の間に違いがあるかどうか疑問に思っています。Riak.mapValuesJson() について知らなかったので、Riak データベースの map reduce 関数で JSON.parse() を使い続けましたが、これはうまくいきましたRiak.mapValuesJson() が JSON.parse() のエイリアスである場合

4

1 に答える 1

1

JSON.parse() を使用します

参照: https://github.com/basho/riak_kv/blob/master/priv/mapred_builtins.js

mapValues: function(value, keyData, arg) {
  if (value["not_found"]) {
    return [value];
  }
  var data = value["values"][0]["data"];
  if (Riak.getClassName(data) !== "Array") {
    return [data];
  }
  else {
    return data;
  }},
mapValuesJson: function(value, keyData, arg) {
  if (value["not_found"]) {
    return [value];
  }
  var newValues = Riak.mapValues(value, keyData, arg);
  return newValues.map(function(nv) { return JSON.parse(nv); });
}

編集:

最初のステップは if ステートメントでオブジェクトに値があることを確認することです。値がなくても riak はオブジェクトを返し、値を設定できるようにするためです。

次のステップは、親オブジェクトを呼び出し、コールバックを使用してそのメソッドを呼び出して、現在デコードされている json データを解析することです。if ステムに追加することとオブジェクトを初期化することの 2 つの間に大きな速度の違いはないはずですが、 map reduce の呼び出しは簡単です。小さいバケットではこれを使用し、大きいバケットでは JSON.pare() を使用します。

于 2012-10-14T20:12:30.087 に答える