Ruby on rails 卡桑德拉cql比较器型计数器

Ruby on rails 卡桑德拉cql比较器型计数器,ruby-on-rails,cassandra,cql,Ruby On Rails,Cassandra,Cql,我想使用以下代码更新字段… @@db.execute("UPDATE user_count SET counters = counters + #{val} WHERE cid = 1 ") 第一次尝试时,我失败了: CassandraCQL::Error::InvalidRequestException:对非交换列族用户\u计数的操作无效 我发现我必须使用比较器计数器,但我找不到如何使用cassandra cql gem设置它。。。有人知道我怎样才能让它工作吗? 下面是我不工作的代码 @@d

我想使用以下代码更新字段…

@@db.execute("UPDATE user_count SET counters = counters + #{val} WHERE cid = 1 ")
第一次尝试时,我失败了:
CassandraCQL::Error::InvalidRequestException:对非交换列族用户\u计数的操作无效
我发现我必须使用比较器计数器,但我找不到如何使用cassandra cql gem设置它。。。有人知道我怎样才能让它工作吗? 下面是我不工作的代码

@@db.execute("CREATE COLUMNFAMILY user_count(cid varchar PRIMARY KEY, counters counter) with comparator = counter " )
@@db.execute("INSERT INTO user_count (cid, counters) VALUES (?,?)", 1, 0)

您需要设置默认值\u validation=CounterColumnType,而不是comparator

@@db.execute("CREATE COLUMNFAMILY user_count(cid varchar PRIMARY KEY, counters counter) with default_validation=CounterColumnType")
@@db.execute("update user_count set counters = counters + 1 where cid = 1")
您必须使用“更新”来更改计数器值,计数器没有插入语法(在CQL update和insert中,您可以执行相同的操作)


当前,在同一列族中不能有计数器和非计数器(来自:“列族要么只包含计数器,要么根本不包含计数器”)

您好,谢谢您的回答,我尝试了,但我得到以下失败
CassandraCQL::Error::InvalidRequestException:default\u validation\u类不是创建COLUMNFAMILY的有效关键字参数
您知道为什么会发生这种情况吗?gem版本是cassandra cql 1.0.2,cassandra版本是1.0.6抱歉,它只是默认的_验证,而不是默认的_验证类。我更正了答案。