Spring Boot + MongoDB CRUD demo project.
MongoDB 是文档型数据库,数据以类似 JSON 的文档形式保存。
常见概念对应关系:
| MySQL | MongoDB |
|---|---|
| database | database |
| table | collection |
| row | document |
| column | field |
当前 demo 使用:
mongodb_demo database
└── users collection
└── user documents
MongoDB 不需要提前创建数据库和集合。第一次写入文档时,数据库和集合会自动创建。
使用 Docker 启动本地 MongoDB:
docker run -d \
--name mongodb-demo \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:7查看容器:
docker ps进入 MongoDB shell:
docker exec -it mongodb-demo mongosh -u admin -p 123456常用命令:
show dbs
use mongodb_demo
show collections
db.users.find().pretty()MongoDB 连接配置位于 src/main/resources/application.yaml:
spring:
data:
mongodb:
uri: mongodb://admin:123456@localhost:27017/mongodb_demo?authSource=admin说明:
| 配置 | 含义 |
|---|---|
admin:123456 |
MongoDB 用户名和密码 |
localhost:27017 |
本地 MongoDB 地址 |
mongodb_demo |
业务数据库 |
authSource=admin |
使用 admin 数据库认证 |
mvn spring-boot:runcurl -X POST http://localhost:8080/users \
-H "Content-Type: application/json" \
-d '{
"name": "zhangsan",
"age": 18,
"email": "11854578@qq.com"
}'curl http://localhost:8080/userscurl http://localhost:8080/users/{id}curl -X PUT http://localhost:8080/users/{id} \
-H "Content-Type: application/json" \
-d '{
"name": "lisi",
"age": 18,
"email": "11854578@qq.com"
}'curl -X DELETE http://localhost:8080/users/{id}src/main/java/com/sakura/mongodbdemo/user
├── User.java
├── UserRepository.java
└── UserController.java
核心说明:
@Document("users"):表示User文档保存到users集合。@Id:表示 Java 字段id映射到 MongoDB 文档的_id。MongoRepository<User, String>:提供基础 CRUD 能力。