Ram*_*far 7 java pagination mongodb mongodb-query
我是mongoDb中的菜鸟,我需要为任何特定的集合实现Pagination,例如说
我有一个Collection Foo,我有一个Fucntion,它返回Foo集合中的所有记录
public List<Foo> getFoo(){
}
Run Code Online (Sandbox Code Playgroud)
但我需要通过实现分页从Foo中获取记录如何通过使用mongoTemplate Spring数据mongodb实现这一目标?
Nei*_*unn 14
对于一般分页,您可以使用Query对象上的.skip()和.limit()修饰符,您可以将其作为参数传递给方法:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Run Code Online (Sandbox Code Playgroud)
随着.skip()结果如何可能会超过并.limit()返回页面大小.
因此,从MongoTemplate派生一个MongoOperations实例,并从那里使用标准.find()操作.
跳过和限制不是最高性能的选项,尝试将最后看到的值存储在自然索引(_id如果可能),并使用范围查询以避免"跳过"1000的结果.
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);
Run Code Online (Sandbox Code Playgroud)
您可以为您正在使用的查询提供跳过和限制,这应该有助于进行分页。看一下MongoTemplate 类中的find方法。
你的方法应该是这样的:
public List<Foo> getFoo(int pageNumber, int pageSize) {...}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10361 次 |
| 最近记录: |