我们在使用mongodb的java代码的时候,分页获取数据是很常见的代码,但并没有mongo的java的工具类提供出来。这里封装一个比较简单分页工具类供大家参考。
public class MongoPageHelper {
private static final int FIRST_PAGE_NUM = 1;
private static final String ID = "_id";
private final MongoTemplate mongoTemplate;
public MongoPageHelper(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
/**
* 分页查询,直接返回集合类型的结果
*/
public <T> PageResult<T> pageQuery(Query query, Class<T> entityClass, Integer pageSize, Integer pageNum,String collectionName) {
return pageQuery(query, entityClass, pageSize, pageNum, Function.identity(), null,collectionName);
}
/**
* 分页查询
* @param query mongo Query 对象,构造你自己的查询条件
* @param entityClass mongo collection 定义的entity class ,确定集合
* @param pageSize 每页大小
* @param pageNum 当前页
* @param mapper 映射器 collection 定义的entityClas