MongoDB分页主要涉及到两个方法skip()和limit(),也可以再加一个排序类Sort,用于查询结果的排序。
方法讲解
1.skip()
说明:查询时,跳过前n条记录,从第那条记录开始获取记录。
使用: query.skip(n)
2.limit()
说明:查询后,限制查询获取n条记录。
使用: query.limit(n)
3.Sort类
说明:查询后,指定查询结果是按升序还是降序排列。
使用: query.with(new Sort(new Sort.Order(Sort.Direction.DESC), "filed"));
实例讲解
public Map<String, Object> mongoPage(int pageNum, int pageSize, String field) {
Query query = new Query();
Criteria criteria = Criteria.where("field").is(field);
query.addCriteria(criteria);
List<记录类> 总记录集合 = mongoTemplate.find(query, 记录类.class, Mongo集合);
int total = 总记录集合.size();
map.put("total", total);
//从第n条开始查询
query.skip((pageNum - 1) * pageSize);
// 每页记录数
query.limit(exchangeRecordCheckModel.getPageSize());
query.with(new Sort(new Sort.Order(Sort.Direction.DESC, 排序的字段)));
// 查询结果
List<记录类> 分页记录集合= mongoTemplate.find(query, 记录类.class, Mongo集合);
map.put("分页记录", 分页记录集合);
/**
一般会将查询的记录结果的总的记录数和分页获取的记录放入Map集合,然后返回给调用者。
也就是:
map.put("total", total);
map.put("分页记录", 分页记录集合);
将map集合返回。
*/
return map;
}