# 文档结构设计原则

URL: https://caijiao.org/mongodb/04-modeling/01-design-principles
Source: docs/mongodb/04-modeling/01-design-principles.md
Description: 本章节介绍 MongoDB 中文档结构设计的基本原则，帮助用户设计高效、灵活且易维护的数据模型。

[MongoDB](/mongodb/) 使用 BSON 格式存储文档，设计合理的文档结构对性能和扩展性至关重要。以下是常见设计原则：

## 1. 模型设计：嵌入 vs 关联

- **嵌入（Embedding）**  
  将相关数据存储在同一个文档内，适合一对多且数据经常一起查询的场景。减少查询次数，提高性能。

- **引用（Referencing）**  
  使用文档间的引用（如 ObjectId）保存关联，适合数据独立且关系复杂的场景，避免文档过大。

## 2. 文档大小控制

MongoDB 单个文档最大为 16MB，设计时避免过大文档，防止性能下降或写入失败。

## 3. 数据访问模式优先

根据应用的查询和写入需求设计文档结构，优化常用操作，避免复杂的聚合和多次查询。

## 4. 规范化与反规范化平衡

根据实际需求在数据冗余与一致性之间找到平衡点，反规范化可以提升读取效率，但需注意数据同步。

## 5. 使用数组合理

数组适合存储同类数据集合，但应避免过长数组导致文档膨胀和性能问题。

---

合理的文档结构设计能提升 MongoDB 应用的性能、扩展性和开发效率，是构建高质量数据库的基础。
