專案初期面臨需求頻變、快速迭代、JSON 為主資料格式、部署運維簡單、資源受限五大約束。經對比 Redis、MongoDB 等 NoSQL 方案,最終選擇 MongoDB 完全取代 MySQL,本文還原決策邏輯與落地亮點。
| 約束 | 對應需求 |
|---|---|
| 需求頻繁變更 | 敏捷開發、低維護成本、功能最短週期上線 |
| Client/API 原生支援 | 驅動成熟、語法直觀、開發效率高 |
| 部署簡單 | 零配置、二進制解壓即跑 |
| 水平擴展強 | Sharding/Replica Set 內建 |
| 資源節省 | CPU/記憶體佔用低 |
專案全鏈路 (前端→API→儲存) 皆以 JSON 為交換格式。MongoDB 內部採用 BSON (Binary JSON),無需 ORM 映射、無阻抗失配,文檔結構與程式碼物件一對一;Redis 雖 4.0+ 支援模組化 JSON,但核心仍為 K-V,複雜查詢/聚合能力弱。
db.coll.find({age:{$gte:18}}) 比 SQL 更直觀,學習曲線平緩。$lookup, $unwind, $group) 一站式解決。updateOne({_id:id}, {$inc:{views:1}}, {upsert:true}) 原子自增、不存在即插入,省去應用層判斷。_id 自動唯一索引。GROUP BY。mongoimport, mongomirror, 自訂 ETL 腳本。技術選型無銀彈,唯有「業務場景匹配度」最高原則。若你的系統同樣以 JSON 為核心、需求高頻變動、團隊渴望敏捷,MongoDB 值得作為 MySQL 替代方案深度評估。