我很难使用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 :(得分:0)
请注意,您在值周围使用单引号,在Erlang语法中表示您正在使用atoms.根据文档cqerl,它不会在那里期望原子。 cqerl data types
例如尝试:
statement = "INSERT INTO data(scope)
VALUES(?) USING ttl ?",
values = [{scope, "Scope Value"},{[ttl], 3650}]
答案 1 :(得分: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"}]