1

嗨,我正在为 Ruby on Rails 使用 cassandra-cql gem。

我需要计算所有用户。在我的例子中,用户是用户列族中的行。用户有 (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
4

1 回答 1

1

在您的代码示例中,您正在访问不是您想要的原始节俭对象。

试试这个:

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

也就是说,计算列族中的所有行通常不是一个好主意。如果您希望经常执行此查询,则应考虑使用在添加或删除用户时更新的计数器列。

于 2012-01-02T03:40:45.430 回答