spring mongo 分页
时间: 2023-10-27 13:06:18 浏览: 46
在 Spring Boot 中使用 MongoDB 进行分页查询可以使用 `MongoTemplate` 类和 `org.springframework.data.domain.PageRequest` 类来实现。
以下是一个简单的例子,假设我们有一个名为 `users` 的集合,其中包含了 `name` 和 `age` 两个字段:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private MongoTemplate mongoTemplate;
public Page<User> findUsers(int page, int size) {
// 创建分页请求对象
PageRequest pageRequest = PageRequest.of(page - 1, size);
// 执行分页查询
Page<User> users = mongoTemplate.findAll(User.class, pageRequest);
return users;
}
}
```
上述代码中,我们定义了一个 `UserService` 类,其中注入了一个 `MongoTemplate` 对象,然后定义了一个 `findUsers` 方法用于分页查询用户信息。
在 `findUsers` 方法中,我们首先创建了一个 `PageRequest` 对象来表示分页请求,然后利用 `MongoTemplate` 的 `findAll` 方法进行分页查询,最后返回查询结果。
需要注意的是,`PageRequest` 的第一个参数是页码,从 0 开始计数,因此如果要查询第一页数据,应该传入 0 而不是 1。
另外,如果需要对查询结果进行排序,可以在 `PageRequest` 中传入一个 `Sort` 对象来定义排序规则。
更多关于 Spring Data MongoDB 的分页查询可以参考官方文档:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.pagination