一.连接MongoDB
1.MongoDBCompass连接数据库
连接路径:mongodb://用户名:密码@localhost:27017/
2.创建数据库(集合)
MongoDB中数据库被称为集合.
MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表)
文档中的数据结构(相当于表中的列)设计不用管,添加数据的时候,自动创建列和数据类型.
3.在集合中添加数据
可以将JSON文件添加到集合中.如果是多条数据结构应该如下,不然会提示格式错误
[{ ... },{ ... },{ ... }]
如果是多条数据,最外层应该是[ ] , 这个和从MySql导出来的数据有点点不一样,如果是从MySQL中导出的话,要把json文档打开,按照上面这个格式去掉头尾.
二. Spring Boot 连接MongoDB
1.pom添加引用
<!-- 添加mongodb引用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.yml添加连接配置
spring:
data:
mongodb:
uri: mongodb://用户名:密码@127.0.0.1:27017/fresh_mall?authSource=admin
上面的用户名和密码替换你自己的,如果不添加 ?authSource=admin 会提示权限错误.
三. Spring Boot 操作MongoDB
-
创建MongoDB对应的实体类
@Getter
@Setter
@Document("user_address")
@Schema(name = "UserAddress", description = "用户地址")
public class UserAddress implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键")
@Field("uuid")
private String uuid;@Schema(description = "用户编号") @Field("userId") private String userId;
}
上面代码中@Document注解对应MongoDB中的集合名称,@Field注解对应集合中的字段名,这样配置之后MongoDB会自动完成实体到数据的映射.
2.通过MongoTemplate进行数据操作
@Resource
private MongoTemplate mongoTemplate; //mongoDB操作模板
@Override
public List<UserAddress> getAddressByUserId(String uid) {
//创建查询对象
Query query = new Query();
//配置查询标准
query.addCriteria(Criteria.where("userId").is(uid));
List<UserAddress> list = mongoTemplate.find(query,UserAddress.class);
return list;
}
这个代码会自动查找user_address集合,因为实体类做了配置,并且在查找到内容之后,自动完成数据到对象的映射.