springboot 集成 MongoDB

/ 2021-01-12 / 1182人浏览 / 0人评论

安装

安装目录 F:\M-MongoDB\Server\4.2\bin

运行

运行 MongoDB 服务器

mongod --dbpath F:\M-MongoDB\Server\4.2\data\db

--dbpath 指定 db 存在 F:\M-MongoDB\Server\4.2\data\db 目录下

连接 MongoDB mongo.exe

基础概念

名词 介绍 描述
database 数据库 可以创建多个数据库,默认数据库为"db",该数据库存储在data目录中;"show dbs" 命令可以显示所有数据的列表。
collection 集合 集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
document 文档 文档是一组键值(key-value)对(即 BSON)
field
index 索引
primary key MongoDB自动将_id字段设置为主键 .

springboot 操作MongoDB

引入spring-boot-starter-data-mongodb

springboot依赖包默认加了 spring-boot-starter-data-mongodb 的包,所以我们直接引入就好了

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

yaml设置

data:
   mongodb:
     uri: ${MONGODB_URI:mongodb://localhost:27017/test}
	   # spring.data.mongodb.uri=mongodb://name:pwd@localhost:27017/test

name & pwd 是有用户名密码时填写

创建实体

@Document(collection = "visitLog")
public class VisitLog implements Serializable {

	private static final long serialVersionUID = 3350985224829943638L;
	//主键标识,该属性的值会自动对应mongodb的主键字段"_id",如果该属性名就叫“id”,则该注解可以省略,否则必须写
	@Id   
	private String id;

	private String shortUrlId;
	// 点击人
	//添加了一个单字段的索引
   @Indexed
	private String clickAccount;
	// 设备类型
	private MachineType machineType;
	// 操作系统
	private String os;
	// ip地址
	private String ip;
	// 浏览器
	private String browser;
}

创建持久层

@Component
public interface  VisitLogRepository extends MongoRepository<VisitLog, String> {

}

业务逻辑处理

public interface VisitLogService {
	
	/**
	 * 保存访问日志
	 * @param visitLog
	 */
	void save(VisitLog visitLog);
	
	/**
	 * 查询访问日志列表
	 * @return
	 */
	List<VisitLog> list();

}
@Service
public class VisitLogServiceImpl implements VisitLogService {
	
	@Autowired
	private VisitLogRepository visitLogRepository;
	
	@Override
	public void save(VisitLog visitLog) {
		visitLogRepository.save(visitLog);
	}

	@Override
	public List<VisitLog> list() {
		return visitLogRepository.findAll();
	}
}

全部评论