MongoDB
以『文件』為單位儲存資料的 NoSQL 資料庫,結構彈性,適合快速變動的需求。
還不熟這個主題?先看基礎: 資料庫 Database
一句話解釋
MongoDB 是以『文件』為單位儲存的 NoSQL 資料庫,結構彈性,適合快速變動的需求。
白話文說明
MongoDB 是一種 NoSQL 資料庫,它不用傳統的「表格+欄位」,而是以文件為單位儲存——每份文件長得像程式裡的物件(JSON),而且不同文件可以有不同欄位。這帶來很大的彈性:需求一變,直接加欄位就好,不必先改整張表的結構。
它的彈性是雙面刃:方便的同時,也容易讓資料長得亂七八糟。對「結構常變、以文件為主」的資料很合適;但像金流帳本這種高度關聯、要求嚴格一致的場景,關聯式資料庫(如 Postgres)通常更穩妥。
架構圖
運作流程
文件式資料什麼時候適合
當你的資料天生就是層層巢狀、或每一筆長得不太一樣時,文件式就很好用——例如一個商品,不同分類帶的屬性都不同(書有作者、衣服有尺寸)。硬要塞進固定的表格欄位會很彆扭,用文件反而剛剛好。反過來說,當資料高度關聯——訂單連到使用者、再連到付款——這類資料放在關聯式資料庫通常更穩妥。
重點整理
- MongoDB=以文件為單位的彈性 NoSQL 資料庫。
- 結構可隨需求演進,適合快速變動的產品。
- 彈性是雙面刃;嚴格一致的金流場景宜用關聯式。
生活化比喻
像一個個資料夾:每份文件可以長得不太一樣,不必先規定好統一的表格欄位。
優勢
- 結構彈性,欄位可隨需求演進
- 存取格式接近程式裡的物件,直覺
- 水平擴展設計成熟
缺點
- 缺乏嚴格結構,易長出混亂資料
- 複雜關聯查詢不如關聯式資料庫
適用場景
- 結構常變、以文件為主的資料
- 需要快速迭代的早期產品
不適用場景
- 高度關聯、需嚴格一致性的金流帳本
新手評分卡
- 新手推薦度
- 3/5
- 學習成本(分數越高=成本越高)
- 3/5
- 市場需求
- 4/5
- AI 生成友善度
- 4/5
常見問題
MongoDB 和 SQL 資料庫差在哪?
MongoDB 是文件型(存類似 JSON 的彈性結構),不需先定義嚴格表結構;SQL 則是有明確欄位與關聯的表格。彈性 vs 結構保證的取捨。
新手該先學 MongoDB 還是 SQL?
多數情況先學 SQL:它逼你想清楚資料關聯,觀念可遷移到大多數系統。資料結構天生鬆散、多變時再用 MongoDB。
MongoDB 適合什麼專案?
結構常變、巢狀資料多、追求快速迭代與水平擴展的應用(如內容、事件、目錄)。需要強一致與複雜關聯交易時,關聯式更穩。
參考來源
- MongoDB Documentation — MongoDB
- MongoDB — MongoDB