2012-10-14 93 views
0

我想知道是否有Riak.mapValuesJson()和JSON.parse()之間的任何區別。我不知道Riak.mapValuesJson(),所以在我的地圖減少我的Riak數據庫中的功能,我一直使用JSON.parse()工作,我不知道是否有額外的優化,或者是在內置的riak版本如果Riak.mapValuesJson()是JSON.parse()來區別:Riak.mapValuesJson()和JSON.parse()

回答

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()

+0

我的JavaScript是真的很糟糕,你會解釋什麼額外的事情之前它調用mapValuesJson – WojonsTech