当前位置: 首页 > news >正文

【Spring Boot 整合 MongoDB 完整指南】

目录

  • Spring Boot 整合 MongoDB 完整指南
    • 1. 添加依赖
    • 2. 配置 MongoDB 连接
      • application.properties 方式:
      • application.yml 方式:
    • 3. 创建实体类(映射MongoDB中的文档,相当于MySQL的表)
    • 4. 创建 Repository 接口完成简单操作
    • 5. 使用 MongoTemplate 进行复杂操作
    • 6. 高级配置
      • 配置连接池
      • 开启审计功能
    • 7. 事务支持(需要MongoDB 4.0+)
    • 8. 索引管理
    • 9. 测试建议
    • 10. 常见问题解决
      • 连接问题
      • 时区问题

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=testdbspring.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: localhostport: 27017database: testdbauthentication-database: adminusername: userpassword: 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字段@Idprivate 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

相关文章:

  • Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频
  • 基于51单片机教室红外计数灯光控制—可蓝牙控制
  • npm 安装时 SSL 证书过期问题笔记
  • 2025最新Java基础八股文速记精简版(万字笔记)
  • 【Linux】系统指令与开发全栈(vim、ssh、gcc)
  • 项目中把webpack 打包改为vite 打包
  • c#将json字符串转换为对象数组
  • Electron使用WebAssembly实现CRC-8 ITU校验
  • Electron + Vue 实现系统消息通知与点击跳转页面
  • 如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)
  • 汽车零部件的EMI抗扰性测试
  • GStreamer (三)常⽤插件
  • word文档中如何在方框中打✔
  • 计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
  • eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点
  • 软考 系统架构设计师系列知识点之杂项集萃(63)
  • 大语言模型 13 - 从0开始训练GPT 0.25B参数量 MiniMind2 补充 训练开销 训练步骤 知识蒸馏 LoRA等
  • 核保核赔的集中管理方案
  • 三键标准、多键usb鼠标数据格式
  • 【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
  • 让中小学生体验不同职业,上海中高职院校提供超5万个体验名额
  • 上海中心城区首条“定制化低空观光航线”启航,可提前一天提需求
  • 贵州茅台:支持工作餐不上酒的规定,请投资者相信茅台创新和自我调节能力
  • 大学2025丨苏大教授王尧:文科最大的危机是阐释世界的能力弱化
  • 知名中医讲师邵学军逝世,终年51岁
  • 上海这个咖啡文化节首次“走出去”,率本土品牌亮相英国伦敦