2016-11-22 59 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

相关问题