一切福田,不離方寸,從心而覓,感無不通。

Spring boot集成mongodb

1、Spring boot集成mongodb简介

spring-data-mongodb提供了MongoTemplateMongoRepository两种方式访问mongodb

  • MongoRepository操作简单
  • MongoTemplate操作灵活

我们在项目中可以灵活适用这两种方式操作mongodb,MongoRepository的缺点是不够灵活,MongoTemplate正好可以弥补不足。

2、搭建项目环境

2.1、创建springboot工程

在这里插入图片描述

2.2、引入依赖

 

2.3、添加配置

在application.properties文件添加MongoDB配置

 

3、基于MongoTemplate 开发CRUD

3.1、MongoTemplate常用方法

mongoTemplate.findAll(User.class): 查询User文档的全部数据
mongoTemplate.findById(, User.class): 查询User文档id为id的数据
mongoTemplate.find(query, User.class);: 根据query内的查询条件查询
mongoTemplate.upsert(query, update, User.class): 修改
mongoTemplate.remove(query, User.class): 删除
mongoTemplate.insert(User): 新增
Query对象
1、创建一个query对象(用来封装所有条件对象),再创建一个criteria对象(用来构建条件)
2、 精准条件:criteria.and(“key”).is(“条件”)
模糊条件:criteria.and(“key”).regex(“条件”)
3、封装条件:query.addCriteria(criteria)
4、大于(创建新的criteria):Criteria gt = Criteria.where(“key”).gt(“条件”)
小于(创建新的criteria):Criteria lt = Criteria.where(“key”).lt(“条件”)
5、Query.addCriteria(new Criteria().andOperator(gt,lt));
6、一个query中只能有一个andOperator()。其参数也可以是Criteria数组。
7、排序 :query.with(new Sort(Sort.Direction.ASC, “age”). and(new Sort(Sort.Direction.DESC, “date”)))

3.2、创建实体类

 

3.3、编写测试类,测试基于MongoTemplate 开发的增删改查

3.3.1、新增数据

在这里插入图片描述

 

控制台输出
在这里插入图片描述

3.3.2、查询集合(表)全部

在这里插入图片描述

 

在这里插入图片描述

3.3.3、根据id查询

在这里插入图片描述

 

在这里插入图片描述

3.3.4、条件查询

在这里插入图片描述

 

在这里插入图片描述

3.3.5、模糊查询

Pattern.compile函数用法

 

查询结果:查询出来了名字里包好est的用户
在这里插入图片描述

3.3.6、分页查询带条件

 

在这里插入图片描述

3.3.7、修改操作

在这里插入图片描述

 

在这里插入图片描述

3.3.8、删除操作

在这里插入图片描述

 

控制台输出:
在这里插入图片描述
查看mongoDB,已经删除了该条数据
在这里插入图片描述

4、 基于MongoRepository开发CRUD

Spring Data提供了对mongodb数据访问的支持,我们只需要继承MongoRepository类,按照Spring Data规范就可以了。

4.1、SpringData 方法定义规范

在这里插入图片描述在这里插入图片描述

1、不是随便声明的,而需要符合一定的规范
2、 查询方法以find | read | get开头
3、 涉及条件查询时,条件的属性用条件关键字连接
4、 要注意的是:条件属性首字母需要大写
5、 支持属性的级联查询,但若当前类有符合条件的属性则优先使用,而不使用级联属性,若需要使用级联属性,则属性之间使用_强制进行连接

4.2、添加Repository接口

在这里插入图片描述

 

4.3 添加测试类,测试CRUD

4.3.1、添加操作

在这里插入图片描述

 

在这里插入图片描述

4.3.2、查询所有

 

在这里插入图片描述

4.3.2、根据id查询

 

在这里插入图片描述

4.3.3、条件查询

使用 Example example = Example.of(user);封装查询条件

 

在这里插入图片描述

4.3.4、模糊条件查询

在这里插入图片描述

 

在这里插入图片描述

4.3.5、分页查询

 

在这里插入图片描述

4.3.6、修改

在这里插入图片描述

 

在这里插入图片描述

4.3.6、删除

执行删除前,首先查询一些=下数据库user表中的数据
在这里插入图片描述
执行删除操作

 

再次查询test数据库的user表,数据已删除
在这里插入图片描述

 

from:https://blog.csdn.net/qq_46112274/article/details/117425532