以下Query是否是从Java Driver端在MongoDB中执行分页的正确方法?
Criteria criteria = new Criteria("users").in(userID);
Query query = new Query(criteria).skip(start).limit(count);
在此示例中,“start”和“count”是方法参数。这种方法有任何性能问题吗?如果是这样,为了解决MongoDB查询中的分页,有哪些替代查询方法?
答案 0 :(得分:1)
使用skip和limit是从数据库中获取结果页面的常用模式。
就性能而言,在访问数据库时,您始终需要注意应用程序和数据库服务器之间的网络跳跃性能成本,假设它们位于不同的计算机上。对于您的示例代码,这应该只是通过网络的单个调用,这很好。但是,请注意,如果您有一个非常大的count
值,结果将分批返回(即需要多次网络调用),则在第一批中默认为101(请参阅:http://docs.mongodb.org/manual/core/read-operations/#cursor-behaviors)。