1 创建项目
IDEA快速初始化Spring项目。
创建后pom.xml文件依赖如下。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2 开发
2.1 创建DO类
@Data
public class User {
private Integer id;
private String username;
private String address;
}
2.2 编写service
public interface IUserService {
void saveUser(User user);
void removeUser(Integer id);
void updateUser(User user);
User findUserById(Integer id);
List selectAllUser(Integer page, Integer pageSize);
}
@Service
public class UserServiceImpl implements IUserService {
@Resource
private MongoTemplate mongoTemplate;
@Override
public void saveUser(User user) {
this.mongoTemplate.save(user);
}
@Override
public void removeUser(Integer id) {
Query query = new Query(Criteria.where("id").is(id));
this.mongoTemplate.remove(query, User.class);
}
@Override
public void updateUser(User user) {
Query query = new Query(Criteria.where("id").is(user.getId()));
Update update = new Update();
update.set("username", user.getUsername());
update.set"address", user.getAddress());
this.mongoTemplate.upsert(query,update,User.class);
}
@Override
public User findUserById(Integer id) {
Query query = new Query(Criteria.where("id").is(id));
return this.mongoTemplate.findOne(query, User.class);
}
@Override
public List selectAllUser(Integer page, Integer pageSize) {
if (page < 0) {
page = 0;
}
// 将条件封装到Aggregate管道
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.project("id", "username", "address"),//指定输出文档中的字段
Aggregation.sort(Sort.Direction.ASC, "id"),//排序
Aggregation.skip((page - 1) * pageSize),//过滤条数,跳过一定数量的数据
Aggregation.limit(pageSize));//限制传递给下一步的文档数量
//查询
List userList = mongoTemplate.aggregate(aggregation, "user", User.class).getMappedResults();
return userList;
}
}
3 测试
3.1 添加数据
3.2查询数据
查询一条记录。
查询所有记录。
3.3 修改数据
测试修改结果。
3.4 删除数据
测试删除结果,再查询id为2的记录。