1

こんにちは、Ruby on Rails に cassandra-cql gem を使用しています。

すべてのユーザーを数える必要があります。私の場合、users は 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
4

1 に答える 1

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

とはいえ、列ファミリー内のすべての行を数えることは、一般的には良い考えではありません。このクエリを頻繁に実行することが予想される場合は、ユーザーを追加または削除するときに更新するカウンター列の使用を検討する必要があります。

于 2012-01-02T03:40:45.430 に答える