您好我正在使用Ruby on Rails的cassandra-cql gem。
我需要统计所有用户。在我的例子中,用户是users列族中的行。 用户有(id,first_name,last_name,email) 下面的代码返回一种二进制编码的值。有人知道如何将正确的计数器值作为整数返回吗?
或者是否可以在不提取所有用户的情况下返回最大的ID?在CQL中?
或者在创建索引时是否存在任何类型的index_length?
def self.counter
count = @@db.execute("SELECT count(*) FROM users")
count.fetch do |f|
puts f.row.columns.first.value
end
end
答案 0 :(得分:1)
在您的代码示例中,您正在访问原始thrift对象,而这不是您想要的。
请改为尝试:
def self.counter
count = @@db.execute("SELECT count(*) FROM users")
count.fetch do |f|
puts f.column_values.first
# or
puts f[0]
end
end
也就是说,计算列族中的所有行通常为not a good idea。如果您希望经常执行此查询,则应考虑使用在添加或删除用户时更新的计数器列。