DynamoDB に数値の複合ソートキーを設定するときは桁数を固定してzero paddingする
zero padding
しないでバグったことがあったのでメモ
前提:
たとえばあるカテゴリのアイテムを人気順でソートして取得するために
categoryUpvoteNum: {category}#{upvoteNum}
という
複合ソートキー
を作成したいとする。
問題:
"category1#13"
みたいな値を使ってしまうと
"category1#5"
より小さいと評価されてしまう(数値ではなく文字列として評価されるため)
解決策:
想定される桁数を基にして
category1#00000013
のように
zero padding
してあげると正しくソートできる
#DynamoDB