MongoTemplate增删改查排序实例⼲货MongoTemplate是数据库和代码之间的接⼝,对数据库的操作都在它⾥⾯
⽂章⽬录
⼀、配置环境:添加依赖、注⼊MongoTemplate怎么求原码反码补码
1、l中添加依赖
<!-- springboot 整合 mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
2、注⼊MongoTemplate
@Autowired
private MongoTemplate mongoTemplate;
⼆、插⼊(新增):使⽤insert或save插⼊数据
1、insert:若新增数据的主键已经存在,则会抛DuplicateKeyException 异常提⽰主键重复,不保存当前数据。
a)单个插⼊:mongoTemplate.insert(obj);
//使⽤insert⽅法插⼊Student对象
@Override
public void test(Student student){
mongoTemplate.insert(student);
}
b)批量插⼊:insert批量插⼊不⽤遍历,效率⾼
List<Student> stuList =new ArrayList<>();
stuList.add(new Student(1,"胡歌","男"));
access数据库建表的完整步骤stuList.add(new Student(2,"刘亦菲","⼥"));
stuList.add(new Student(3,"易烊千玺","男"));
stuList.add(new Student(4,"沈腾","男"));
stuList.add(new Student(5,"陈钰琪","⼥"));
mongoTemplate.insert(stuList,"stuList");
2、save:若新增数据的主键已经存在,则会对当前已经存在的数据进⾏修改操作。
a)单个插⼊:mongoTemplate.save(obj);
//使⽤save⽅法插⼊Student对象
@Override
public void test(Student student){
mongoTemplate.save(student);
}
三、查询:
1、查询全部
@Override
public List<Student>findAll(){
return mongoTemplate.findAll(Student.class);
}
2、查询⼀条数据
//根据name名字字段来查询
@Override
public Student find(String name){
Query query=new Query();//创建query对象,⽤来添加过滤条件
//查询name为李四的⽂档
//这⾥的where,相当于MySQL中的where,⽤来过滤信息的
query.addCriteria(Criteria.where("name").is(name));
return mongoTemplate.findOne(query,Student.class);
}
3、多条件查询
@Override
public User login(User user){
/
/根据名字和密码进⾏查询
Criteria criatira =new Criteria();
criatira.andOperator(Criteria.where("user_name").UserName()),Criteria.where("password").Password())); return mongoTemplate.findOne(new Query(criatira),User.class);
}mysql面试题 增删改查
4、左右模糊查询⽤regex⽅法
//按照姓名模糊查询
@Override
public Student find(String name){
Query query=new Query();
Pattern pattern=Patternpile("^.*"+name+".*$", Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where("name").regex(pattern));
return mongoTemplate.findOne(query,Student.class);
}
四、修改:
微服务网关功能1、修改⼀个字段
//根据name名字字段来修改sex性别的值
@Override
public void updateStatu(Student student){
Query query=new Query();
query.addCriteria(Criteria.where("name").Name()));
Update update = Update.update("sex", Sex());
mongoTemplate.updateMulti(query,update,Student.class);
源代码故事解说
}
2、修改多个字段
//根据DsAudit集合(表)的id字段
@Override
public void updateData(Student student){
Query query=new Query();
//对id为3的⽂档进⾏修改
query.addCriteria(Criteria.where("_id").is(3));
Update update =new Update();//update对象是⽤来进⾏修改操作的
//修改名字Name字段的值为张三,性别为男
update.set("Name","张三");
update.set("sex","男");
mongoTemplate.updateFirst(query, update, Student.class);
}
五、删除:
1、根据字段来删除
//删除_id为3的⽂档
@Override
public void delete(Student student){
Query query =new Query(Criteria.where("_id").is("3"));
}
六、排序:
1、查询全部信息并排序:
//查询全部并根据id字段降序
@Override
public List<Student>findAll(){
Query query =new Query();
//根据id字段来排序,如果想根据多个字段进⾏排序,可以在str字符串数组中添加字段
获取网站的源代码有什么用String[] str={"id"};
query.with(Sort.by(Sort.Direction.DESC,str));//DESC降序,ASC是升序
return mongoTemplate.find(query,Student.class);
}
2、根据条件查询并排序:
//根据名字字段查询并根据id字段进⾏降序
@Override
public List<Student>find(String name){
Query query=new Query();
query.addCriteria(Criteria.where("name").is(name)).with(Sort.by(Sort.Order.desc("id"))); return mongoTemplate.find(query,Student.class);
}
七、Query和Criteria、Sort⽤法
1、Query: 定义筛选条件、排序等
2、Criteria:相当于SQL的where,下⾯是Criteria常⽤⽅法及作⽤
3、Sort:创建查询排序
⼋、实体类主键和别名
注解@Id,数据库中的主键字段名为_id
//⽤户名
@Id
private String user_name;
别名⽤@Field注解,数据库中的字段名为fName,⽽不是user_name
@Field("fName")
private String user_name;
欢迎⼤家阅读,本⼈见识有限,写的博客难免有错误或者疏忽的地⽅,还望各位⼤佬指点,在此表⽰感谢。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论