2014-01-07 39 views
0

我試圖實現使用helenus模塊將數據存儲到cassandra的接口。 使用節儉的驅動程序,我插入並獲取數據。nodejs,使用helenus將數據存儲在Cassandra中

   keySpace.get(cfName, function (err, cf) { 
        cf.insert(key, storData, {consistency : 
           helenus.ConsistencyLevel.ANY}, function(err) { 
       } 

現在我得到的數據如下:

   keySpace.get(cfName, function (err, cf) { 
        cf.get(key, function(err, row) { 
         row.forEach(function(name,value,ts,ttl){ 
         console.log("Getting NAME AS:", name.toString(), 
            value.toString()); 
        }); 
       }); 

但是我觀察是,如果存儲的數據是JSON 1級,然後我能夠正確地檢索數據,作爲例如:

   {"a":"b", "c":"d"} 

這我能夠使用GET操作上面檢索,但如果是多層次的,然後我得到的數據爲[對象對象], 例如JSON:

  {"c": [{"a":"b"}]} 

這不適合我。 請讓我知道我在做什麼錯誤。

問候, -M-

回答

2

對象的字符串表示[Object Object],所以當你有嵌套的對象,這就是toString()將返回。

您應該使用JSON.stringifyJSON.parse相反,如果名稱是從來沒有嵌套,你可以做

keySpace.get(cfName, function (err, cf) { 
    cf.get(key, function(err, row) { 
     row.forEach(function(name,value,ts,ttl){ 
     console.log("Getting NAME AS:", name.toString(), JSON.stringify(value)); 
    }); 
}); 

基本存儲的正確方法JSON是第一字符串化它,那麼當你得到它支持你解析它。

一點題外話,你爲什麼不使用CQL,它是一個更容易比較節儉

+0

雖然存儲數據,我存儲JSON.strified格式,但與工作而獲得的數據,在多於一個級別的JSON數據的情況下不能正常工作,所以我在考慮如果consistencyLevel需要設置一些不同的值。我將嘗試與CQL並行。 –

+0

只要你存儲一個字符串,並且你正在使用'JSON.stringify()'而不是'toString()',一致性級別或者返回'[Object,Object]'不應該是一個問題。 – adeneo

相關問題