MongoTemplate分页
时间: 2024-06-11 08:08:00 浏览: 220
MongoTemplate 是 Spring Data MongoDB 提供的一个操作 MongoDB 数据库的工具类,通过它可以方便地进行数据的增删改查等操作。如果需要实现 MongoDB 的分页功能,可以使用 MongoTemplate 提供的 find 方法结合 PageRequest 对象来实现。
具体实现步骤如下:
1. 创建 PageRequest 对象,指定当前页码和每页大小。
```java
PageRequest pageRequest = PageRequest.of(pageNum, pageSize);
```
2. 使用 MongoTemplate 的 find 方法查询数据,并指定查询条件和分页参数。
```java
Query query = new Query();
query.addCriteria(Criteria.where("name").regex(name));
List<User> userList = mongoTemplate.find(query.with(pageRequest), User.class);
```
3. 使用 Page 对象封装查询结果,并返回给前端。
```java
Page<User> page = PageableExecutionUtils.getPage(userList, pageRequest, () -> mongoTemplate.count(query, User.class));
return page;
```
完整代码示例:
```java
public Page<User> findUsers(String name, int pageNum, int pageSize) {
PageRequest pageRequest = PageRequest.of(pageNum, pageSize);
Query query = new Query();
query.addCriteria(Criteria.where("name").regex(name));
List<User> userList = mongoTemplate.find(query.with(pageRequest), User.class);
Page<User> page = PageableExecutionUtils.getPage(userList, pageRequest, () -> mongoTemplate.count(query, User.class));
return page;
}
```
阅读全文