0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dynamoidでページネーションを実装する

Posted at

Dynamoidでページネーションを実現する

DynamoDBのRubyアプリケーション用のORMであるDynamoidを用いて、ページネーションを実現する方法を紹介します

実現したいコト

  1. レコードを数件取得する
  2. その続きのレコードをさらに数件取得する
  3. 2を繰り返す

レコード取得部分の実装

Userテーブルからレコードを10件取得する

records, metadata = User.record_limit(10).start(nil).find_by_pages.first

続きのレコードをさらに10件取得する

records, metadata = User.record_limit(10).start(metadata[:last_evaluated_key]).find_by_pages.first

records

  • 取得したレコードの内容が格納される

metadata

  • 取得できるレコードに続きがある際にlast_evaluated_keyパラメータが追加される
  • startlast_evaluated_keyを指定することで、続きのレコードを取得できる

where句を使う場合

実際に使う際は検索条件などを加えたい場合が多いと思う

Userテーブルからレコードを10件取得する

records, metadata = User.record_limit(10).where(条件).start(nil).find_by_pages.first

続きのレコードをさらに10件取得する

records, metadata = User.record_limit(10).where(条件).start(metadata[:last_evaluated_key]).find_by_pages.first

より詳しい内容はDynamoid GitHubをご確認ください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?