現在、Ruby AWS SDKのItemCollection#クエリメソッドは、データセット全体を返します。私はページングの可能性についてRuby AWS SDKのソースコードを調べましたが、ページネーションに最も近いオプションは:limit
であり、改ページはありません。ItemsCollection#クエリによるページ設定?
前の結果を含むクエリ動作が停止項目の主キー、:AmazonのDynamoDBのAPIによる照会操作のための(HTTP、ないルビー)のドキュメントは
LastEvaluatedKey
キーレスポンスとページネーションがある可能性が示唆しますセット。この値を使用して、新しい要求でこの値を除外して新しい操作を開始します。 クエリ結果セット全体が完了すると(つまり、操作が「最後のページ」を処理したとき)、LastEvaluatedKeyはnullになります。
だから私は:limit
オプションを追加して、私の最後のItem
後に範囲値については、次のクエリを実行してページングを行うことができますが、その後、私は、私は完全なクエリを実行しない限り、総数が何であるか見当がつかない。
ページ作成をより簡単に行う方法はありますか?
これは私が恐れていたケースでした。 Ruby SDKを使用しているので、#queryメソッドでこれを達成できるかどうかはわかりませんか?私は 'count:true'オプションを追加しようとしましたが、それでも' Enumerator'を返します。 –
@ JohnK.Chow:実際には刺激的です - 私はDevOpsのトピックの外でRubyを使用しないので、これを自分で試していません。 APIは[ItemCollection](http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/DynamoDB/ItemCollection)のドキュメントです。html)は実際には '#query'の' count'パラメータを実際にはリストしていません。専用の '#count'メソッドではなく、テーブルscan_を使ってコレクション内のアイテムを数えると思います。 [スキャン](http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html)の特徴は、ドキュメントのバグでしょうか? –
クエリAPIは、同じハッシュキー値を持つレコードしかカウントできません。 「すべてのレコード」を数える唯一の方法はスキャンです。 –