hasNext()方法等效于Rails中的Mongoid :: Criteria用于分页

时间:2017-06-08 01:24:54

标签: ruby-on-rails mongoid

How can I tell if there are more results from a query in MongoDB?

我需要知道限制查询之后是否有更多文档,就像上面链接的问题一样,但是在Ruby Mongoid中。

是否有任何方法等同于Mongoid的hasNext?

更新:更新我的问题以提供一些背景信息。

我试图实施分页但我的

这是我的API逻辑的一部分:

limit = params[:limit] + 1
query_conditions << { :_id.lt => params[:flag] } 
@query = Notification.where({ '$and' => query_conditions }).limit(limit)

@last_page = @notifications_query.count < limit

我将发出查询结果的第一个(n-1)元素和last_page布尔值,让客户知道这是否是最后一页。但我想知道是否有任何内置函数或更智能的方法来确定最后一页布尔值。

1 个答案:

答案 0 :(得分:1)

在这种情况下,我会完全推荐kaminari-mongoid gem。它提供了各种辅助方法来实现分页(docs),在你的情况下(只是粗略的草图,因为我无法访问mongodb)

@query = Notification.where({ '$and' => query_conditions }).page(params[:page] || 1).per(params[:limit].to_i + 1)
@last_page = !@query.next_page