rubyとAWS SDKでDynamoDBを操作する。ページング編
前回簡単な、DynamoDBの操作方法を記事に書きました。
今回はページングを実装してみます。
DESIGN HUNTERではこのように実装しています。
クリックすると以下のように展開されます。
DynamoDBはリクエストの上限やリミットを明記すると、次のハッシュキーを返します。
その帰ってきたハッシュキーを元に再度DynamoDBにリクエストかければOKです。
早速プログラムです。
gem install aws-sdk
require 'aws-sdk' AWS.config( :access_key_id => '***', :secret_access_key => '***', :dynamo_db_endpoint => 'dynamodb.ap-northeast-1.amazonaws.com' ) dynamo_db = AWS::DynamoDB.new table = dynamo_db.tables["table"] table.hash_key = [:id, :string] # DynamoDBに30ほど登録されているとする。 # もし残りのデータが存在するするのであれば、次のハッシュキーを渡す。 hash_key_element = table.items.where(:create_at).begins_with(date).select(:limit => 10) # 次から検索したい場合はhash_key_elementをexclusive_start_keyに渡す。 table.items.where(:create_at).begins_with(date).select(:limit => 10, :exclusive_start_key => hash_key_element)
あとはif文とかで制御するだけでいいと思います。
結構簡単に出来ますね。