2012-02-01 2 views
9

amazon Dynamo DB를 레일과 함께 사용하고 싶습니다. 그러나 페이지 매김을 구현하는 방법을 찾지 못했습니다.레일에서 amazon Dynamo DB를 사용할 때 페이지 매김을 구현하는 방법

ORM으로 AWS::Record::HashModel을 사용합니다.

이 ORM은이 같은 한계를 지원합니다

People.limit(10).each {|person| ... } 

을하지만 디나모 DB에서 MySQL의 쿼리 다음 구현하는 방법을 알아 냈 없습니다.

SELECT * 
    FROM `People` 
LIMIT 1 , 30 

답변

23

LIMIT을 사용하여 검색어를 발행합니다. 리턴 된 서브 세트가 전체 테이블을 포함하지 않으면 "LastEvaluatedKey"값이 리턴됩니다. 이 값을 다음 쿼리의 ExclusiveStartKey로 사용합니다. 등등 ...

DynamoDB Developer Guide.

+2

이 답변이 DynamoDB의 방금 언급 한'LastEvaluatedKey'와'ExclusiveStartKey'은 (향후)와 한 방향으로 페이지 매김을 제공 고려되지 않습니다. DynamoDB를 사용하여 적어도 '이전'및 '다음'옵션이있는 표준 페이지 매김은 불가능합니다. – Srle

+0

@Srle, LastEvaluatedKey 및 ExclusiveStartKey를 사용하여 NEXT 연산을 수행하는 방법을 제공했습니다. 질의의 순서를 반대로하고 PREVIOUS 조작을 할 수 있습니다. DynamoDB에서 즉시 사용할 수 있습니다. –

+0

@ nickolay.laptev 예, 요점 또는 무언가를 양방향으로 지원하는 것을 제공 할 수 있습니까? – Srle

1

쿼리에서 '페이지 크기'를 제공하여 결과 집합 크기를 설정할 수 있습니다. DynamoDB의 응답에는 페이지 크기에 따라 마지막 키를 나타내는 'LastEvaluatedKey'가 포함되어 있습니다. 응답에 'LastEvaluatedKey'가 포함되어 있지 않으면 가져올 결과가 남아 있음을 의미합니다. 다음 시간을 가져 오는 동안 'LastEvaluatedKey'를 'ExclusiveStartKey'로 사용하십시오.

이 정보가 도움이되기를 바랍니다.

DynamoDB Pagination

관련 문제