Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

mongodb-demo

Spring Boot + MongoDB CRUD demo project.

MongoDB 基础概念

MongoDB 是文档型数据库,数据以类似 JSON 的文档形式保存。

常见概念对应关系:

MySQL MongoDB
database database
table collection
row document
column field

当前 demo 使用:

mongodb_demo database
  └── users collection
        └── user documents

MongoDB 不需要提前创建数据库和集合。第一次写入文档时,数据库和集合会自动创建。

启动 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:run

CRUD 接口

新增用户

curl -X POST http://localhost:8080/users \
  -H "Content-Type: application/json" \
  -d '{
    "name": "zhangsan",
    "age": 18,
    "email": "11854578@qq.com"
  }'

查询用户列表

curl http://localhost:8080/users

查询单个用户

curl 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 能力。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages