【问题标题】:Pagination with MongoDB使用 MongoDB 进行分页
【发布时间】:2011-01-04 14:27:17
【问题描述】:

我一直在使用 MongoDB 和 RoR 来存储日志数据。我正在提取数据并希望对结果进行分页。有没有人使用 MongoDB 进行分页或知道任何在线资源可以帮助我入门?

干杯

伊夫

【问题讨论】:

    标签: ruby pagination mongodb


    【解决方案1】:

    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 库公开了这些方法。

    【讨论】:

    猜你喜欢
    • 2015-04-27
    • 2018-05-13
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2015-10-20
    • 2016-02-26
    • 2020-09-15
    相关资源
    最近更新 更多