количество строк в семействе столбцов => Кассандра - PullRequest
1 голос
/ 02 января 2012

Привет, я использую гем cassandra-cql для Ruby on Rails.

Мне нужно сосчитать всех пользователей.В моем случае пользователи - это строки в семействе столбцов пользователей.Пользователи имеют (id, first_name, last_name, email). Приведенный ниже код возвращает значение в виде двоичной кодировки.Кто-нибудь знает, как я могу вернуть правильное значение счетчика в виде целого числа?

Или можно вернуть самый большой идентификатор, не выбирая всех пользователей?В 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 Ответ

1 голос
/ 02 января 2012

В вашем примере кода вы получаете доступ к необработанному объекту 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

Тем не менее, подсчитав все строки в столбцесемья вообще не очень хорошая идея .Если вы собираетесь часто выполнять этот запрос, вам следует рассмотреть возможность использования столбца счетчика, который вы обновляете при добавлении или удалении пользователей.

...