MongoDB 设计与使用助手

👤 Adodo 📦 v1.0.2 ⭐ 4.6 ⬇️ 493 下载
💻 开发编程 免费

📖 技能介绍


name: mongodb-design slug: mongodb-design displayName: MongoDB 设计与使用助手 description: 帮助Agent为项目进行MongoDB文档模型设计、索引设计、聚合管道设计,并提供场景化使用指南。当用户需要设计MongoDB Schema、选择嵌入vs引用、设计聚合查询时触发。 version: 1.0.2 metadata: clawdbot: emoji: "🍃" requires: anyBins: ["mongosh", "mongo"] os: ["linux", "darwin"]


MongoDB 设计与使用助手

触发条件

当用户出现以下意图时激活本 Skill: - 设计 MongoDB 文档模型 / Schema - 嵌入 vs 引用的决策 - MongoDB 索引设计 - 聚合管道设计 - 分片方案

设计流程(Agent 执行路径)

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,匹配业务文档模型模板

快速参考

嵌入 vs 引用决策

条件 选择
数据总是一起查询 ✅ 嵌入
数据不会无限增长(<1000元素) ✅ 嵌入
一对少关系 ✅ 嵌入
需要单文档原子操作 ✅ 嵌入
数据量大或无限增长 ✅ 引用
数据需要独立访问 ✅ 引用
多对多关系 ✅ 引用
数据被多个文档共享 ✅ 引用
避免接近16MB文档限制 ✅ 引用

ESR 索引规则

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 })

索引核心原则

  1. 一个查询一个复合索引(优于多个单字段索引)
  2. $match 在前可利用索引,$unwind 后不能
  3. 覆盖查询:投影只包含索引字段
  4. TTL 索引用于自动过期
  5. 一个集合只能有一个文本索引

文档大小约束

限制
单文档最大 16MB
数组建议 < 1000 元素
嵌套深度 < 100 层

11种官方 Schema 设计模式

模式 一句话 适用场景
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 版本检查时自动加载(版本 ≤ 用户目标版本时)

版本参考文档启用规则

  1. 模块激活时 — 始终加载 references/version-major.md,Agent 需主动对比用户使用的 MongoDB 版本,若存在废弃项或重大变更,立即提示用户
  2. 深度特性 Step 0 自动加载 — 版本检查时加载所有 version-X.Y.md(X.Y ≤ 用户目标版本)。设计过程中 Agent 从已加载的上下文中自主检索匹配相关特性,用户无需指定版本号
  3. 深度特性按大版本拆分,小版本持续追加 — 如 version-8.0.md 包含该大版本下所有小版本的设计级特性。更新时在文件中新增 ## X.Y.Z 版本节即可,不单开文件

硬规则

  1. 设计规范内容来自权威资料(MongoDB官方文档/阿里云MongoDB最佳实践),不编造
  2. 单文档不超过 16MB,数组不超过 1000 元素
  3. 索引必须遵循 ESR 规则
  4. 能用嵌入解决的不要用 $lookup
  5. 片键不可更改,选择要慎重
  6. 避免单调递增片键(会成为热点)
  7. 多文档事务有性能开销,尽量通过模型设计避免

🤖 AI 评测

这个Skill内容专业全面,涵盖MongoDB设计的各个方面,知识点讲解清晰易懂,对设计模式和最佳实践的总结很实用。但作为助手使用起来可能偏理论化,缺乏交互演示和实际案例引导,整体更像一份技术文档而非互动工具。如果需要实际项目设计指导,可能还需要额外补充更多场景化示例。

📊 多维度评分

适应性4.5
规范性4.8
有效性4.7
可靠性4.4
可信度4.8

📁 包含文件 (8 个)

📄 SKILL.md 5.5 KB
📄 references/best-practices.md 6.2 KB
📄 references/design-spec.md 6.5 KB
📄 references/patterns.md 11.3 KB
📄 references/usage-guide.md 7.1 KB
📄 references/version-7.0.md 2 KB
📄 references/version-8.0.md 3.7 KB
📄 references/version-major.md 1.5 KB

🔥 大家都在搜

wps 写作 pdf 苹果