阅读指南

这套教程面向第一次接触 MongoDB 的同学。

你不需要有 MongoDB 基础,但建议至少知道:

知识点够用程度
JSON知道 { "name": "张三" } 这种键值结构
终端命令会执行 docker runmongosh 这类命令
后端接口大概知道接口会把数据保存到数据库
基本数据库概念知道数据库是用来持久化保存数据的

MongoDB 和 MySQL 最大的不同是:MongoDB 用“文档”保存数据,不是用固定行列的表保存数据。

一、教程使用的环境

本教程以 MongoDB 8.x 的常见写法为主,具体版本以 MongoDB 官方安装页和官方 Release 为准。

项目本教程使用
数据库MongoDB 8.x
连接工具mongosh
推荐本地启动方式Docker
示例数据库mongodb_tutorial
示例集合userspostscomments

本教程重点讲 MongoDB 的核心概念和常用命令,不写完整项目。

二、学习顺序

建议按这个顺序阅读:

  1. 快速入门:认识 MongoDB,安装启动,理解数据库、集合、文档。
  2. 文档模型设计:学习 BSON 类型、文档结构、内嵌和引用。
  3. 增删改查 CRUD:掌握 insertOnefindupdateOnedeleteOne
  4. 索引聚合和事务:知道索引怎么加速查询,聚合管道怎么统计数据,事务适合什么场景。
  5. 安全备份和后端使用:学习用户权限、连接字符串、备份恢复和后端项目使用建议。

三、几个容易混淆的词

MongoDBMySQL 类比简单解释
databasedatabase数据库
collectiontable集合,可以理解成一类文档的容器
documentrow文档,一条数据
fieldcolumn字段
_idprimary key文档唯一标识
BSONJSON 的二进制扩展MongoDB 实际存储格式

MongoDB 不是“没有结构”,而是结构更灵活。真实项目仍然需要认真设计字段和索引。

四、本教程的示例约定

示例数据库统一叫:

use mongodb_tutorial

示例集合:

集合含义
users用户
posts文章
comments评论

示例文档尽量使用接近真实后端接口的数据:

{
  username: "zhangsan",
  email: "zhangsan@example.com",
  age: 18,
  status: "active",
  createdAt: new Date()
}

五、真实性说明

本文档会尽量避免这些不适合新手的写法:

不推荐直接学原因
把 MongoDB 理解成完全不需要建模文档数据库也需要设计数据结构
所有字段都随便塞进一个文档文档过大、更新频繁时会影响性能和维护性
不建索引直接查大集合数据量上来后查询会很慢
生产环境不开启认证数据库暴露后风险极高
盲目使用事务MongoDB 常用建模方式会尽量减少跨文档事务

六、官方资料