2016-11-22 55 views
2

我很難用使用cqerl更新地圖的語法。現在我曾嘗試以下,直到它不工作使用cqerl更新地圖數據類型的正確方法

statement = "UPDATE keyspace SET data[?] = :data_value WHERE scope = ?;", 
    values = [{data,"Key Value"},{data_value, "Data Value",{scope, "Scope Value"}] 

我在做什麼錯在這裏?

還設置TTL不起作用

statement = "INSERT INTO data(scope) 
     VALUES(?) USING ttl ?", 
    values = [{scope, "Scope Value"},{[ttl], 3650}] 

任何人,任何想法?

回答

0

基於來自在github貢獻者應答,它需要的原子,所以 '[TTL]' 是正確的方式 https://github.com/matehat/cqerl/issues/122

爲了更新地圖正確的方法是在值部分

statement = "UPDATE keyspace SET data[?] = ? WHERE scope = ?;", 
    values = [{'key(data)',"Key Value"},{'value(data)', "Data Value",{scope, "Scope Value"}] 
+0

您應該在此回覆中添加鏈接。 –

1

請注意,您正在使用周圍的價值觀,這在二郎語法使用的是atoms.基於文檔cqerl表示單引號,預計不會有原子。 cqerl data types

例如嘗試:

statement = "INSERT INTO data(scope) 
    VALUES(?) USING ttl ?", 
values = [{scope, "Scope Value"},{[ttl], 3650}] 
+0

感謝回答後,我也並不意味着單引號,我在上面糾正原子。我想你還沒有嘗試運行上面的代碼,它不起作用。我已經試過了。我得到這個沒有右手價值的匹配{error,{throw,{{missing_parameter,{parameter,'[ttl]'}, – user3404572

相關問題