MongoDBでのページ付けは、limit()
の組み合わせを使用して実行できます。 およびskip()
。
たとえば、アクティブなデータベースにusersというコレクションがあるとします。
>> db.users.find().limit(3)
これにより、最初の3つのユーザードキュメントのリストが取得されます。これは基本的に書くことと同じであることに注意してください:
>> db.users.find().skip(0).limit(3)
次の3つでは、これを行うことができます:
>> db.users.find().skip(3).limit(3)
これにより、最初の3つのユーザーレコードがスキップされ、次の3つのレコードが提供されます。データベースにユーザーがもう1人しかいない場合でも、心配する必要はありません。 MongoDBは、存在するデータのみを返し、クラッシュしないほどスマートです。
これはそのように一般化することができ、Webアプリケーションで行うこととほぼ同じです。 PAGE_SIZE
という変数があると仮定します これは3に設定され、任意のPAGE_NUMBER
:
>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)
Ruby on Railsでこのメソッドを使用する方法について直接話すことはできませんが、RubyMongoDBライブラリがこれらのメソッドを公開していると思われます。