1.整合过程
①添加MongoDB对应pom依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
②配置文件,application.properties配置MongoDB数据库连接信息:
spring:
datasource:
url: jdbc:mysql://172.18.XXX.XXX:3236/sodb?useSSL=false
username: 1234
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
data:
mongodb:
host: 172.18.XXX.XXX
port: 27017
database: message_db
connectTimeout: 120000
socketTimeout: 60000
maxWaitTime: 120000
socketKeepAlive: true
③实例托管/文档操作:
在需要使用到MongoDB的地方注入MongoDBTemplate让Spring容器替我们管理实例,
而且在MongoDB里面所有的数据都被认为是文档,对象的属性对mgdb来说就是一个个
字段,所以最好模拟一个对象对文档进行操作;
/**
* @author chenyang
* @Title: EventMsgVo
* @Description: TODO
* @date 2021/2/26 15:52
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MsgInfoVo {
private String id;
private String identifier;
private String productKey;
private String deviceName;
private Long timestamp;
private String version;
private String method;
private Object params;
}
④mgdb–curd(增删改查):
增:
Stud stud = new Stud(1,"小明",18) //实例化一个实体类
MongodbTemplage.save(stud );
MongodbTemplage.insert(stud);
删:
MongodbTemplage.remove(Query query, Class<?> entityClass)
/**参数解释:
*Query query:传入的查询条件,按此条件进行删除
*Class<?> entityClass:所删除的数据的实体类
*还可以带上参数
*String collectionName : 这是集合的名称
*/
/**Query的实现:
*Query query = new Query(Criteria.where("要查询的属性").is("属性值"));
*如果条件多,可使用 and 和 andOperator()组合查询;
*/
new Query(Criteria.where(“要查询的属性”).is(“属性值”).and(“要查询的属性”).is(“属性值”))
new Query(Criteria.where(“要查询的属性”).is(“属性值”).andOperator(Criteria.where(“要查询的属性”).is(“属性值”)));
//注:一个Criteria中只能有一个andOperator,and可以多个,当查询并列条件时,比较建议使用and方法;
改:
Update update = new Update();
update.set("属性","属性值");
MongodbTemplage.update(Query var1, Update var2, Class<?> var3)
//updateFirst只修改查到的第一个。
MongodbTemplage.updateFirst(Query var1, Update var2, Class<?> var3)
查:
// 查询所有
MongodbTemplage.find(Query var1, Class<T> var2, String var3)
// 根据字段查询数据
MongodbTemplage.find(Query var1, Class<T> var2, String var3)
Query query = new Query(Criteria.where("要查询的属性").is("属性值"));
版权声明:本文为qq_45296917原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。