MongoDB 生产实践知识库
一句话定位:一套面向生产实践、可检索、可执行、可维护的 MongoDB(Humongous DB,文档型数据库)中文知识库,覆盖文档建模、索引、查询与聚合、事务、副本集、分片、备份恢复、安全、监控与故障处置。
元信息
| 项目 | 说明 |
|---|---|
| 知识库版本 | v1.0 |
| 知识截止日期 | 2026-09-07 |
| 基线版本 | MongoDB 6.0 / 7.0 / 8.0(当前受支持的稳定大版本) |
| 默认存储引擎 | WiredTiger |
| 默认 Shell | mongosh(MongoDB Shell,取代已弃用的 mongo) |
| 覆盖部署形态 | Community、Enterprise、Atlas(托管云)、自托管副本集、自托管分片集群 |
| 语言与格式 | 简体中文正文;命令、字段名、阶段名与配置项保留英文原文 |
版本与核验约定
所有版本敏感结论均标注适用版本与最后核验日期。具体参数、默认值与命令行为以目标小版本的 MongoDB Server Manual 及运行环境的 db.version() / getParameter 输出为准。无法确认的内容标记为「待核验」,不做猜测。
目标读者
| 读者角色 | 关注主题 | 推荐入口 |
|---|---|---|
| 应用开发工程师 | 数据建模、CRUD、索引、聚合、事务、驱动 | 文档模型 → 索引 → 查询与聚合 |
| DBA / SRE | 副本集、分片、备份恢复、监控、升级、故障处置 | 副本集 → 分片 → 运维 → 故障处置 |
| 安全与合规人员 | 认证、授权、加密、审计、网络隔离、凭据治理 | 安全纵深 |
| 技术负责人 | 架构选型、边界条件、成本、风险、演进路线 | 决策表汇总 |
| AI 检索系统(RAG) | 稳定标题、原子知识、关键词、交叉引用 | 每篇条目含元数据、关键词与相关条目 |
完整目录树
text
docs/database/mongodb/
├── index.md # 本页:知识库总览
├── principles/ # 基本原理(八大主题,带编号)
│ ├── index.md # 原理目录总览
│ ├── 01-concepts/ # 一、文档模型与基础概念
│ │ ├── index.md
│ │ ├── 01-bson-and-types.md # BSON 与数据类型边界
│ │ ├── 02-document-model-design.md # 按访问模式建模:嵌入 vs 引用
│ │ └── 03-schema-validation.md # Schema Validation 与模型演进
│ ├── 02-indexes/ # 二、索引设计与生命周期
│ │ ├── index.md
│ │ ├── 01-index-types.md # 索引类型全景
│ │ ├── 02-esr-and-compound.md # ESR 原则与复合索引
│ │ └── 03-explain-and-lifecycle.md # explain 分析与索引下线
│ ├── 03-query/ # 三、CRUD、查询/写入语义与聚合
│ │ ├── index.md
│ │ ├── 01-crud-and-query-semantics.md
│ │ ├── 02-read-write-concern.md # read/write concern 与 read preference
│ │ └── 03-aggregation-pipeline.md # 聚合管道
│ ├── 04-transactions/ # 四、事务、会话与重试
│ │ ├── index.md
│ │ └── 01-multi-document-transactions.md
│ ├── 05-replication/ # 五、副本集与高可用
│ │ ├── index.md
│ │ └── 01-replica-set-and-ha.md
│ ├── 06-sharding/ # 六、分片与水平扩展
│ │ ├── index.md
│ │ └── 01-sharding-and-shard-key.md
│ ├── 07-operations/ # 七/八/十一~十三、运维主题
│ │ ├── index.md
│ │ ├── 01-backup-and-recovery.md # 备份、恢复与灾难恢复
│ │ ├── 02-monitoring-and-capacity.md # 监控、性能与容量规划
│ │ ├── 03-security-defense-in-depth.md # 安全与合规
│ │ └── 04-upgrade-and-drivers.md # 升级、迁移、驱动与连接池
│ └── 08-reference/ # 十四、决策表、反模式与术语
│ ├── index.md
│ ├── decision-tables.md # 八张核心决策对照表
│ ├── anti-patterns.md # 常见反模式与检查清单
│ └── glossary.md # 术语表(中英文 + 原始标识符)
└── incidents/ # 九、故障诊断与应急处置
├── index.md
├── 01-connection-and-auth.md # 连接/认证/TLS/连接池
├── 02-slow-query-and-scan.md # 慢查询/扫描过多/排序溢写
├── 03-resource-saturation.md # CPU/内存/磁盘/网络
├── 04-replication-and-election.md # 复制延迟/选举/oplog/初始同步
├── 05-sharding-issues.md # 分片不均/热点/迁移/路由
└── 06-transaction-and-backup.md # 事务冲突/备份恢复失败/数据不一致主题依赖关系
- 建议学习顺序:先建模(concepts)再索引(indexes),随后查询与聚合(query);分布式主题按「副本集 → 分片」推进;运维(operations)与故障处置(incidents)依赖前述所有概念。
- 故障现场入口:直接进入 incidents,按现象定位,再回链到对应原理条目。
- 架构选型入口:直接查阅 reference/decision-tables。
风险分级规则
全库统一使用四级风险标签,标注在每篇条目元数据的「风险等级」及具体命令处:
| 等级 | 定义 | 处置要求 | 典型操作 |
|---|---|---|---|
| 低 | 只读诊断,几乎不影响负载 | 可直接执行,仍需控制频率 | explain()、rs.status()、serverStatus()、sh.status() |
| 中 | 可逆写操作或有限资源影响 | 低峰执行 + 观测 + 可回滚 | 创建/隐藏索引、调整连接池、setProfilingLevel |
| 高 | 影响拓扑、一致性或需停服窗口 | 审批 + 备份 + 回滚方案 + 维护窗口 | 副本集 reconfig、refineCollectionShardKey、FCV 变更、滚动升级 |
| 严重 | 不可逆或可能丢数据 | 审批 + 完整备份 + 演练 + 双人复核 | dropDatabase、resharding、repairDatabase、强制重同步、删除数据文件 |
破坏性操作红线
在证据不足时,禁止直接建议:重启节点、强制 reconfig、删除数据/文件、降级 write concern 或关闭认证/TLS 等安全控制。任何「严重」级操作必须先具备备份、审批、回滚与维护窗口。
术语与格式规范
术语约定:关键术语首次出现时同时给出中文名、英文名与原始标识符,例如「写关注(Write Concern,writeConcern)」。全库术语、版本表述、风险等级与代码风格保持一致,完整清单见 术语表。
统一示例数据模型:全库示例默认使用一个多租户电商/SaaS 场景,避免各条目命名漂移。
| 库 | 集合 | 关键字段 | 用途 |
|---|---|---|---|
app | orders | _id、tenantId、userId、status、amount、createdAt、items[] | 订单主表,贯穿索引/聚合/事务示例 |
app | users | _id、tenantId、email、profile{} | 用户,演示唯一索引与嵌入 |
app | products | _id、sku、price、stock | 商品,演示引用与库存事务 |
app | events | _id、ts、type、payload{} | 事件/时序数据,演示 Bucket Pattern 与 TTL |
代码块规范:
- 命令前标注执行节点(应用主机 /
mongosh/mongod主机 /mongos/ 管理平台)与操作性质(只读 / 写入 / 阻塞 / 资源密集 / 破坏性)。 - 使用带语言标识的代码块:
javascript(mongosh)、json、yaml、bash。 - 示例输出统一标注「示例输出」,不伪装为真实执行结果;随版本变化的字段不要求逐字匹配。
- 连接串与凭据一律使用占位符:
<username>、<password>、<host>、<replicaSet>,或从环境变量$MONGODB_URI注入。
单篇条目模板:每篇知识条目严格采用统一的 16 段结构(元数据、摘要、适用/不适用场景、核心原理、前置条件、操作步骤或决策流程、示例、验证方法、风险与副作用、回滚或恢复、常见错误与反模式、排障路径、生产检查清单、版本与部署差异、参考资料)。
如何使用本知识库
- 系统学习:按上文「主题依赖关系」顺序阅读,每篇末尾的「生产检查清单」可作为落地核对项。
- 故障处置:从 incidents 按现象进入,遵循「描述影响 → 保护现场 → 无损观测 → 建立假设 → 最小化验证 → 缓解优先 → 验证恢复 → 复盘预防」框架。
- 架构决策:查阅 reference/decision-tables,用对照表在一致性、可用性、延迟、吞吐、成本与运维复杂度之间做权衡。
- 术语检索:不确定术语含义时先查 术语表。
免责与维护
- 本知识库不替代官方文档;生产变更前必须核对目标版本的官方资料。
- 所有性能结论都依赖数据规模、基数、读写比、硬件、网络与版本,不做绝对化承诺。
- 建议维护周期:每季度或每次 MongoDB 大版本发布后复核一次版本敏感条目,并更新「最后核验日期」。
