我一直在使用 MongoDB 和 RoR 来存储日志数据。我正在提取数据并希望对结果进行分页。有没有人使用 MongoDB 进行分页或知道任何在线资源可以帮助我入门?
干杯
伊夫
我一直在使用 MongoDB 和 RoR 来存储日志数据。我正在提取数据并希望对结果进行分页。有没有人使用 MongoDB 进行分页或知道任何在线资源可以帮助我入门?
干杯
伊夫
MongoDB 中的分页可以通过使用 和 的组合来limit()
完成skip()
。
例如,假设我们的活动数据库中有一个名为 users 的集合。
>> db.users.find().limit(3)
这将为我们检索前三个用户文档的列表。请注意,这与编写基本相同:
>> db.users.find().skip(0).limit(3)
对于接下来的三个,我们可以这样做:
>> db.users.find().skip(3).limit(3)
这会跳过前三个用户记录,并给我们接下来的三个。如果您的数据库中只有一个用户,请不要担心;MongoDB 足够聪明,只返回存在的数据,并且不会崩溃。
这可以这样概括,并且大致相当于您在 Web 应用程序中所做的。假设我们有PAGE_SIZE
一个设置为 3 的变量,以及一个任意的PAGE_NUMBER
:
>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)
我不能直接谈论如何在 Ruby on Rails 中使用这种方法,但我怀疑 Ruby MongoDB 库公开了这些方法。