22

Rails で amazon Dynamo DB を使用したいのですが、ページネーションを実装する方法が見つかりません。

AWS::Record::HashModelORMとして使用します。

この ORM は、次のような制限をサポートしています。

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

しかし、Dynamo DB で次の MySql クエリを実装する方法がわかりませんでした。

SELECT * 
  FROM  `People` 
 LIMIT 1 , 30
4

5 に答える 5

43

LIMIT を使用してクエリを発行します。返されたサブセットにテーブル全体が含まれていない場合は、LastEvaluatedKey値が返されます。この値をExclusiveStartKey次のクエリで使用します。等々...

DynamoDB 開発者ガイドから。

于 2012-02-02T04:04:07.090 に答える
-1

実際、私は同じ問題に直面し、特に使用時にうまく機能していないLastEvaluatedKeyことに気付き、このように解決しました。ExclusiveStartKeyScan

  1. GET/?page_no=1&page_size=10 =====> 最初のページ
  2. 応答にはレコード数と最初の 10 レコードが含まれます
  3. 再試行して、すべてのレコードが来るまでページ数を増やします。

コードは
PSの下にあります:私はpythonを使用しています

first_index = ((page_no-1)*page_size)
second_index = (page_no*page_size)
if (second_index > len(response['Items'])):
    second_index = len(response['Items'])
return {
'statusCode': 200,
'count': response['Count'],
'response': response['Items'][first_index:second_index]
    
}
于 2021-04-02T05:54:28.560 に答える