文档模型与基础概念
文档模型是 MongoDB 一切工程决策的起点。先理解数据如何被读写,再决定如何组织数据——这是与关系型建模最根本的区别。本主题给出从 BSON 类型到 Schema Validation 的完整决策框架。
本章条目
| 编号 | 条目 | 类型 | 难度 | 一句话摘要 |
|---|---|---|---|---|
| CONCEPT-01 | BSON 与数据类型边界 | 概念 | 入门 | ObjectId、Date、Decimal128、数组等类型的语义与陷阱 |
| CONCEPT-02 | 按访问模式建模:嵌入 vs 引用 | 决策 | 中级 | 七维分析框架 + 一对多/多对多/时序的建模范式 |
| CONCEPT-03 | Schema Validation 与模型演进 | 指南 | 中级 | $jsonSchema、验证级别/动作与在线加校验 |
核心原则
不要把 MongoDB 当成「无模式数据库」
MongoDB 是灵活文档模型,不是没有模式。模式从数据库强约束转移到了应用层与 Schema Validation。忽视这一点会导致类型漂移、无界数组和难以维护的反范式数据。
- 围绕访问模式建模:高频一起读取的数据倾向嵌入,独立增长或被多方共享的数据倾向引用。
- 控制文档增长:单文档硬上限 16 MiB,无界数组是头号反模式。
- 一致性边界:单文档写入天然原子;跨文档一致性需要引用 + 应用逻辑,或在确有必要时用多文档事务。
相关主题
- 建模决定索引:见 索引设计
- 建模决定是否需要事务:见 事务边界
- 决策对照表:见 嵌入 vs 引用决策表
