【发布时间】:2016-08-09 12:38:40
【问题描述】:
我有一个带有分页的简单查询的存储库:
Page<MyBean> findMyBeans(String name, Pageable pageable);
我的问题是:
分页将限制为 20(默认情况下)对 mongo 的查询(如 mysql 中的限制),或者它将从 mongo 检索所有数据并仅将 20 个结果返回给调用者?
谢谢
【问题讨论】:
我有一个带有分页的简单查询的存储库:
Page<MyBean> findMyBeans(String name, Pageable pageable);
我的问题是:
分页将限制为 20(默认情况下)对 mongo 的查询(如 mysql 中的限制),或者它将从 mongo 检索所有数据并仅将 20 个结果返回给调用者?
谢谢
【问题讨论】:
它将游标限制为 20。具体而言,它将创建一个 DBCursor,其值限制为 20,如下所示:
Cursor id=0, ns=test.myCollection, query={ }, numIterated=0, limit=100, readPreference=primary
如果您使用Java Mongo DB Driver 并将DBCursor 声明为:
DBCursor myCursor=myCollection.find().limit(20);
所以直接使用 MongoDB 原生游标会是(它在 20 到 20 中迭代)(首先调用第 20,然后是 21-40,依此类推):
Cursor cursor = myCollection.find();
cursor.limit(20);
【讨论】: