当用户出现以下意图时激活本 Skill:
0. 版本检查 → 加载 references/version-major.md 对比用户版本,识别废弃项和重大变更。同时加载所有 version-X.Y.md(X.Y ≤ 用户目标版本),后续设计过程中 Agent 从已加载的上下文中自主匹配深度特性
1. 需求分析 → 理解数据实体、访问模式、增长预期
2. 文档模型设计 → 嵌入vs引用决策(加载 references/design-spec.md)
3. 索引设计 → ESR规则 + 查询模式匹配
4. 使用指引 → 加载 references/usage-guide.md,给出场景化操作
5. 生产建议 → 加载 references/best-practices.md,给出分片/一致性/性能建议
6. 模板参考 → 加载 references/patterns.md,匹配业务文档模型模板
| 条件 | 选择 |
|---|---|
| ------ | ------ |
| 数据总是一起查询 | ✅ 嵌入 |
| 数据不会无限增长(<1000元素) | ✅ 嵌入 |
| 一对少关系 | ✅ 嵌入 |
| 需要单文档原子操作 | ✅ 嵌入 |
| 数据量大或无限增长 | ✅ 引用 |
| 数据需要独立访问 | ✅ 引用 |
| 多对多关系 | ✅ 引用 |
| 数据被多个文档共享 | ✅ 引用 |
| 避免接近16MB文档限制 | ✅ 引用 |
Equality → Sort → Range
// 查询
db.orders.find({ status: "paid" }) // Equality
.sort({ created_at: -1 }) // Sort
.where("total").gt(100) // Range
// 索引(ESR顺序)
db.orders.createIndex({ status: 1, created_at: -1, total: 1 })
| 限制 | 值 |
|---|---|
| ------ | ------ |
| 单文档最大 | 16MB |
| 数组建议 | < 1000 元素 |
| 嵌套深度 | < 100 层 |
| 模式 | 一句话 | 适用场景 |
|---|---|---|
| ------ | -------- | --------- |
| Attribute | 字段→键值对数组 | 大量相似属性 |
| Bucket | 按时间段分桶 | 时序/IoT数据 |
| Computed | 预计算存结果 | 频繁读取的计算值 |
| Document Versioning | current + revisions | 变更历史 |
| Extended Reference | 冗余常用字段 | 频繁JOIN的引用 |
| Polymorphic | 共用基础+类型字段 | 多类型同集合 |
| Pre-Allocation | 先建骨架后更新 | 结构固定的频繁更新 |
| Schema Versioning | schema_version字段 | 文档结构变更 |
| Subset | 热数据嵌入+冷数据引用 | 大数组只取前N |
| Tree | 父子/祖先数组 | 层级结构 |
| Unified | 宽文档满足多查询 | 单集合多场景 |
详细内容按需加载 references/:
| 主题 | 文件 | 何时加载 |
|---|---|---|
| ------ | ------ | --------- |
| 文档模型规范/嵌入vs引用/11种设计模式/命名规范 | references/design-spec.md | Step 2 文档模型设计 |
| 场景化操作(建模型/索引/聚合/分片/迁移) | references/usage-guide.md | Step 4 使用指引 |
| 最佳实践(索引/一致性/性能/分片/运维) | references/best-practices.md | Step 5 生产建议 |
| 业务文档模型模板(6类业务完整示例) | references/patterns.md | Step 6 模板参考 |
| 重大版本特性(废弃/依赖变更/新模块) | references/version-major.md | Step 0 版本检查(模块激活时即加载) |
| 深度版本特性 — 8.0(批量写入/均衡策略/聚合) | references/version-8.0.md | Step 0 版本检查时自动加载(版本 ≤ 用户目标版本时) |
| 深度版本特性 — 7.0(通配符复合索引/CDC/执行引擎) | references/version-7.0.md | Step 0 版本检查时自动加载(版本 ≤ 用户目标版本时) |
references/version-major.md,Agent 需主动对比用户使用的 MongoDB 版本,若存在废弃项或重大变更,立即提示用户version-8.0.md 包含该大版本下所有小版本的设计级特性。更新时在文件中新增 ## X.Y.Z 版本节即可,不单开文件共 3 个版本