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

本技能來自小蔥技能站7w4.net。

// 查詢
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