区别:Riak.mapValuesJson()和JSON.parse()

时间:2012-10-14 18:32:13

标签: json riak

我想知道Riak.mapValuesJson()和JSON.parse()之间是否有任何区别。我不知道Riak.mapValuesJson()所以在我的地图中减少我的Riak数据库中的函数我继续使用JSON.parse()工作我不确定是否有额外的优化或内置的riak版本的东西如果Riak.mapValuesJson()是JSON.parse()的别名

1 个答案:

答案 0 :(得分: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数据,如果是stements和initalizing对象,它们之间不应该有任何主要的速度差异,但它确实使地图的调用变得更容易,我会在较小的存储桶上使用它,并在较大的存储桶上使用JSON.pare()