我是 mongoDb 中的菜鸟,我需要为任何特定集合实现分页,例如说
我有一个 Foo 集合,并且有一个返回 Foo 集合中所有记录的函数
public List<Foo> getFoo(){
}
但我需要通过实现分页来从 Foo 获取记录,如何使用 mongoTemplate Spring data mongodb 来实现这一点?
对于一般分页,您可以使用.skip()
and .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);
With .skip()
结果可能如何过去以及.limit()
是要返回的页面大小。
因此,从 MongoTemplate 派生 MongoOperations 实例并使用标准.find()
从那里进行操作。
不过,跳过和限制并不是性能最好的选项,请尝试将最后看到的值存储在自然索引上,例如_id
尽可能使用范围查询来避免“跳过”数千个结果。
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)