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