2012-01-01 5 views
1

안녕하세요 저는 Ruby on Rails에 cassandra-cql 보석을 사용하고 있습니다.열 패밀리 열 개수 => Cassandra

모든 사용자 수를 계산해야합니다. 필자의 경우 사용자 열은 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

코드 샘플에서 원하지 않는 원시 절약 대상 개체에 액세스하고 있습니다.

대신을 시도했다 컬럼 가정에서 모든 행을 계산

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입니다. 이 쿼리를 자주 수행하려는 경우 사용자를 추가하거나 제거 할 때 업데이트하는 카운터 열을 사용하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. – user934801

+0

당신은 cassandra cql 또는 더 나은 cassandra - cql 보석을 설명하는 웹 사이트를 추천 할 수 있습니까 ?? thx – user934801

+0

CQL의 경우 일반적으로 [참조 문서] (http://www.datastax.com/docs/1.0/references/cql/index)를 살펴보십시오. cassandra-cql gem의 경우 gem의 테스트 (specs)에서 사용 예제를 볼 수 있습니다. – psanford

관련 문제