目录
MongoDB是一种开源的 分布式文档型数据库管理系统
,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。
MongoDB使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。
- 数据库(Database): 存储数据的容器,类似于关系型数据库中的数据库。
- 集合(Collection): 数据库中的一个集合,类似于关系型数据库中的表。
- 文档(Document): 集合中的一个数据记录,类似于关系型数据库中的行(row),以 BSON 格式存储。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成,文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组:
Spring Boot 整合 MongoDB 完整指南
1. 添加依赖
在 pom.xml
中添加 MongoDB 相关依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2. 配置 MongoDB 连接
application.properties 方式:
# 本地MongoDB配置
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=testdb
spring.data.mongodb.authentication-database=admin # 认证数据库(如果需要)
spring.data.mongodb.username=user # (如果需要)
spring.data.mongodb.password=pass # (如果需要)
# 或者使用URI方式
spring.data.mongodb.uri=mongodb://localhost:27017/testdb
spring.data.mongodb.uri=mongodb://user:pass@localhost:27017/testdb?authSource=admin(如果需要)
#用于控制MongoDB数据库是否自动创建索引。
spring.data.mongodb.auto-index-creation = true
application.yml 方式:
spring:
data:
mongodb:
uri: mongodb://user:pass@localhost:27017/testdb?authSource=admin
# 或者分项配置
host: localhost
port: 27017
database: testdb
authentication-database: admin
username: user
password: pass
3. 创建实体类(映射MongoDB中的文档,相当于MySQL的表)
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
@Document(collection = "users") // 指定集合名称,就是类似mysql的表,如果不指定就以类名称作为集合名称
public class User {
//唯一标识,映射到Mongodb文档的_id字段
@Id
private String id;
private String name;
private Integer age;
private Date createTime;
// 构造方法、getter和setter省略
}
4. 创建 Repository 接口完成简单操作
继承 MongoRepository<T, ID> 后,自动获得以下方法:
save(S entity) // 保存/更新
findById(ID id) // 按ID查询
findAll() // 查询所有
deleteById(ID id) // 按ID删除
count() // 计数
// 以及其他18个预定义方法
传统方式需要手动编写 MongoTemplate 查询逻辑,而 Rep