MongoDB(五)——MongoRepository操作MongoDB
环境搭建
添加Repository类
@Repository
public interface UserRepository extends MongoRepository<User, String> {
}
添加操作
package com.study;
import com.study.mongodb.entiity.User;
import com.study.mongodb.repository.UserRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringbootMongoDbApplicationTest1 {
@Autowired
private UserRepository userRepository;
//添加操作
@Test
void create(){
User user = new User();
user.setAge(20);
user.setName("zhangsan");
user.setEmail("963330213@qq.com");
User user1 = userRepository.save(user);
System.out.println(user1);
}
}
查询操作
1.查询所有
//查询所有
@Test
void findAll(){
List<User> userList = userRepository.findAll();
System.out.println(userList);
}
2.根据id查询
//根据id查询
@Test
void findById(){
User user = userRepository.findById("611a2f1f5e7124132f365fa7").get();
System.out.println(user);
}
3.条件查询
//条件查询
@Test
void findUserList(){
//name = zhangsan and age = 20
User user = new User();
user.setName("zhangsan");
user.setAge(20);
Example<User> userExample = Example.of(user);
List<User> users = userRepository.findAll(userExample);
System.out.println(users);
}
4.模糊查询
//模糊查询
@Test
void findLikeUserList(){
//设置模糊查询匹配规则
ExampleMatcher matcher = ExampleMatcher.matching()
.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
.withIgnoreCase(true);//忽略大小写
User user = new User();
user.setName("z"); //包含z的数据
Example<User> userExample = Example.of(user,matcher);
List<User> users = userRepository.findAll(userExample);
System.out.println(users);
}
5.分页查询
//分页查询
@Test
void findPageUserList(){
//分页
Pageable pageable = PageRequest.of(0, 3);//0代表第一页,3显示3个字段
User user = new User();
user.setName("zhangsan");
Example<User> userExample = Example.of(user);
Page<User> page = userRepository.findAll(userExample, pageable);
System.out.println(page);
}
修改操作
//修改操作
@Test
void updateUser(){
User user = userRepository.findById("611a2f1f5e7124132f365fa7").get();
user.setAge(18);
user.setName("lisi");
User save = userRepository.save(user); //有id则修改,无id则变成添加操作
System.out.println(save);
}
删除操作
//删除操作
@Test
void deleteUser(){
userRepository.deleteById("611a2f1f5e7124132f365fa7");
}
分类:
MongoDB
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构