MongoDB从Java驱动程序查询分页

时间:2013-05-30 08:27:45

标签: java mongodb database

以下Query是否是从Java Driver端在MongoDB中执行分页的正确方法?

Criteria criteria = new Criteria("users").in(userID);
Query query = new Query(criteria).skip(start).limit(count);

在此示例中,“start”和“count”是方法参数。这种方法有任何性能问题吗?如果是这样,为了解决MongoDB查询中的分页,有哪些替代查询方法?

1 个答案:

答案 0 :(得分:1)

使用skip和limit是从数据库中获取结果页面的常用模式。

就性能而言,在访问数据库时,您始终需要注意应用程序和数据库服务器之间的网络跳跃性能成本,假设它们位于不同的计算机上。对于您的示例代码,这应该只是通过网络的单个调用,这很好。但是,请注意,如果您有一个非常大的count值,结果将分批返回(即需要多次网络调用),则在第一批中默认为101(请参阅:http://docs.mongodb.org/manual/core/read-operations/#cursor-behaviors)。