spring-data分页实际查询

时间:2016-08-09 12:38:41

标签: pagination spring-data

我有一个带有分页的简单查询的存储库:

Page<MyBean> findMyBeans(String name, Pageable pageable);

我的问题是:

分页将限制为20(默认情况下)对mongo的查询(如mysql中的限制)或者它将从mongo中检索所有数据并仅将20个结果重新调用给调用者?

谢谢

1 个答案:

答案 0 :(得分:1)

它会将游标限制为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);