我想知道 Riak.mapValuesJson() 和 JSON.parse() 之间是否有任何区别。我不知道 Riak.mapValuesJson() 所以在我的 Riak 数据库中的 map reduce 函数中,我一直使用 JSON.parse() 工作我不确定是否有额外的优化或内置 riak 版本中的东西如果 Riak.mapValuesJson() 是 JSON.parse() 的别名
问问题
1157 次
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 语句和初始化对象的两者之间不应该有任何主要的速度差异,但它确实使调用 map reduce 更容易,我会在较小的存储桶上使用它,而 JSON.pare() 在较大的存储桶上使用
于 2012-10-14T20:12:30.087 回答