2017-03-13 1 views
0

나는 매김 주위 AWS의 문서를 통해 읽기 했어 : 자신의 문서로 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#ScanQueryLimitNode.js를 사용하는 DynamoDB의 페이지 매김?

가 지정 응답에서

는, DynamoDB의이 한계 값의 범위 내에서 일치하는 모든 결과를 반환합니다. 예를 들어 제한 값 6 및 필터 식없이 쿼리 또는 검색 요청을 실행하면 DynamoDB는 요청의 지정된 키 조건과 일치하는 테이블의 처음 6 개 항목을 반환합니다 (또는 나는 테이블은 내가 다음에 끝낼 수 있습니다 difficulty (즉 0에서 2에 이르기까지 모든 숫자 값)를 취할 수라는 속성을 가진 Questions라는이 주어진 것을 의미 필터가없는 스캔의 경우)

수수께끼 :

  • 고객이 요청하면 생각합니다. GET /questions?difficulty=0&limit=3
  • 나는 difficulty == 0
  • 이 될하지 않을 수 있습니다 컬렉션의 첫 번째 3으로 0 항목을 반환 수있는 DynamoDB의 질의에 3 내가 다음 모른 채 그 기준과 일치하는 questions 더 가져 오기 위해 새 쿼리를 수행 할 필요가 있음을 전달 중복을 반환 할 수 있습니다.

어떻게하면 쿼리를 기반으로 올바르게 페이지 매김을 할 수 있습니까? 무엇이 정확한 오프셋을 가지고있는 동안 많은 결과를 얻을 수 있습니까?

+0

왜 'LastEvaluatedKey'가 없습니까? 클라이언트가'LastEvaluatedKey'를 받아서 쿼리 문자열을 통해 후속 요청에 보내 게합니다. – idbehold

+0

필자는 'LastEvaluatedKey'를 수정해야합니다. 내가 말하고자하는 것은 오프셋이 결과에 해당하지 않지만 스캔 된 문서에 대한 것입니다. 그 말이 맞는다면? – user2061811

답변

0

쿼리 및 스캔 작업은 응답에 LastEvaluatedKey을 반환합니다. 동시 삽입이 없으면 Query/Scan에 대한 호출을 반복하고 ExclusiveStartKey를 이전 호출의 LastEvaluatedKey로 설정하는 한 항목을 놓치지 않고 여러 번 항목을 접하게됩니다.