计算列family =>中的行数卡桑德拉

时间:2012-01-01 22:14:54

标签: ruby-on-rails cassandra cql

您好我正在使用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

1 个答案:

答案 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。如果您希望经常执行此查询,则应考虑使用在添加或删除用户时更新的计数器列。