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"]
當用戶出現以下意圖時啟用本 Skill: - 設計 MongoDB 文件模型 / Schema - 嵌入 vs 引用的決策 - MongoDB 索引設計 - 聚合管道設計 - 分片方案
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
本技能來自小蔥技能站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 })
| 限制 | 值 |
|---|---|
| 單文件最大 | 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 版本節即可,不單開檔案這個Skill內容專業全面,涵蓋MongoDB設計的各個方面,知識點講解清晰易懂,對設計模式和最佳實踐的總結很實用。但作為助手使用起來可能偏理論化,缺乏互動演示和實際案例引導,整體更像一份技術文件而非互動工具。如果需要實際專案設計指導,可能還需要額外補充更多場景化示例。