MongoDB 从入门到实战|Java 程序员的文档数据库课程
为什么要学 MongoDB?
MySQL 很擅长「结构确定的关系数据」,但下面这些场景它会让你越来越难受:
- 字段经常变化、不同子类型属性差异大(商品 SKU、表单答案、IoT 采集点)——只能 JSON 列或加宽表;
- 数据本身就是「一坨整体」:文章+评论、订单+明细行、用户画像标签——JOIN 五张表才拼出一条记录;
- 写入量大要水平扩展——分库分表中间件一套组合拳;
- 内容管理、日志事件、移动后端快速迭代——schema 变更成本劝退。
MongoDB 是文档型 NoSQL 数据库的代表:以 BSON 文档存数据、模型灵活、原生分片扩容,在互联网内容/订单/画像/物联网/商品目录场景大量落地。只要你会 Java、会 MySQL,学 MongoDB 走「对照迁移」路线就是最快的。
本课程参考 MongoDB 官方中文手册 的知识体系重新组织,所有示例用 Java 代码书写(官方 Java Driver 5.x + Spring Data MongoDB),每个概念都给出 MySQL 对照。
🎯 章节与学习目标总览
| 章节 | 主题 | 学完你将能够 |
|---|---|---|
| 第1章 | 认识 MongoDB 与环境搭建 | 说清文档模型 vs 关系模型的差异与取舍;完成 MongoDB 8.x 安装(Windows/Docker)、mongosh 与 Compass 使用;Java 跑通首次连接 |
| 第2章 | 文档 CRUD 与 Java Driver 实战 | 用官方驱动完成增删改查;把 MySQL 的 WHERE/SELECT 列/ORDER BY/LIMIT 逐条翻译成 Filters/Projections/Sorts/skip-limit |
| 第3章 | 数据建模与 Schema 设计 | 完成从「三大范式」到「内嵌 vs 引用 vs 分桶」的思维转换;按查询模式设计文档;用 $jsonSchema 做校验 |
| 第4章 | 索引与性能优化 | 创建单列/组合/唯一/TTL 等索引;用 explain 识别 COLLSCAN 全表扫;MySQL 最左前缀经验哪里能复用、哪里失效 |
| 第5章 | 聚合管道 | 把 GROUP BY、窗口函数、JOIN 分别翻译成 $group、窗口阶段、$lookup;用 Java Aggregates 写链式管道 |
| 第6章 | 事务、并发与一致性 | 解释单文档原子性与多文档事务的边界;用 ClientSession 写转账事务;理解读写关注点与 MySQL 隔离级别的对应关系 |
| 第7章 | Spring Data MongoDB 实战 | 独立完成 Spring Boot + MongoTemplate/MongoRepository 开发:映射注解、分页、自定义查询、事务管理器 |
| 第8章 | 复制、分片与运维安全 | 讲清副本集选主与 oplog(对照 binlog);分片键怎么选;mongodump/mongorestore 备份恢复;鉴权与 MySQL 数据迁移方法论 |
🧭 建议学习路径
- 系统学习:按章节顺序。第 1~2 章建立手感(约 2 天),第 3~5 章是「文档数据库的灵魂三问」:怎么存、怎么查快、怎么算(约 4 天),第 6~7 章接入企业开发(约 3 天),第 8 章补运维全景(约 2 天)。
- 急着写代码:第 1 章装好环境 → 直接第 7 章 Spring Boot 整合跑通 → 遇到语法回查第 2、5 章 → 上线前务必读第 4、6、8 章。
- 面试导向:第 3 章建模、第 4 章索引、第 6 章事务、第 8 章副本集/分片是高频考点,每章末尾都有 MySQL 对照速查表,适合直接背。
前置要求
本课程默认你:熟悉 MySQL 的 CRUD/索引/事务概念;会用 Java + Maven + Spring Boot。MongoDB 一律从零讲起,不需要 NoSQL 基础。
🛠 配套环境
- 数据库:MongoDB 8.x(Community 版免费)或 MongoDB Atlas 免费集群
- Java Driver:
org.mongodb:mongodb-driver-sync5.x(同步驱动) - 框架:Spring Boot 3.x + spring-boot-starter-data-mongodb
- 工具:mongosh(官方 shell)、MongoDB Compass(GUI)
📚 站内的黄金搭档
- 关系型基础不牢?先刷 MySQL 从入门到精通
- 手写 SQL 没处练?上 SQL 练习场
- 数据库面试高频题:Java 高频面试题·数据库篇
- 刚学完达梦?达梦数据库从入门到实战 与本课程正好覆盖「国产化」与「NoSQL」两个方向
官方参考资料:MongoDB Manual(中文)、Java Driver 文档。本课程是其「Java 程序员 + MySQL 背景视角」的精编实战版。
老师介绍
老苗一对一私教:https://yjoffer.com/aboutus/one2one/one2one.html
