現在、Ruby AWS SDK の ItemCollection#query メソッドはデータセット全体を返します。ページネーションの可能性についてRuby AWS SDKソースコードを調べましたが、ページネーションに最も近いオプションは:limit
、ページネーションなしです。クエリ操作に関する Amazon の DynamoDB API (Ruby ではなく HTTP) のドキュメントによると、応答キーを使用したページネーションが存在する可能性があることが示唆されていますLastEvaluatedKey
。
前の結果セットを含む、クエリ操作が停止した項目の主キー。この値を使用して、新しいリクエストでこの値を除外して新しい操作を開始します。クエリ結果セット全体が完了すると、LastEvaluatedKey は null になります (つまり、オペレーションが「最後のページ」を処理した場合)。
したがって、:limit
オプションを追加してページングを実行し、最後の の後に範囲値の次のクエリを実行Item
できますが、完全なクエリを実行しない限り、合計数がわかりません。
ページネーションを達成するためのより良い/より簡単な方法はありますか?