PynamoDBページネーション実装方法 exclusive_start_keyでは指定しない

DynamoDBでページネーション実装する場合、RDBの様に柔軟なクエリ操作ができませんがlimit/offsetを工夫することで構築可能です。
limitで取得するItem数を指定し、事前に取得したLastEvaluatedKeyをExclusiveStartKeyに指定することでページネーションを実装することができます。

今回はDynamoDB実装を簡素化できるPynamoDBでページネーション実装してみましたがどうもうまく参照できない。

PynamoDBページネーション実装

どうやらPynamoDBではexclusive_start_keyではなくlast_evaluated_keyを指定することが正しい。 pynamodb.readthedocs

_summaries = HogeModel.hoge_id-data_type-index.query(
    _hoge_id,
    HogeModel.data_type.startswith(_data_type),
    scan_index_forward=False,
    limit=limit,
    last_evaluated_key=_last_evaluated_key,
    )

Noneを渡すことでOffsetを無効にすることができます。
またscan_index_forward=FalseはSKでの降順を意味します。

comments powered by Disqus