一、MongoDB是什麼?¶
MongoDB是一種文檔型數據庫,它不像傳統的關係型數據庫(如MySQL)用表格存儲數據,而是用類似JSON的“文檔”(BSON格式)來存儲信息。這種方式對初學者更友好——不需要記住複雜的SQL語法,直接用熟悉的鍵值對結構就能輕鬆管理數據。
二、爲什麼選MongoDB?¶
- 直觀易懂:數據以“文檔”形式存儲,每個文檔可以有不同的字段(鍵值對),適合靈活多變的數據結構(比如一個用戶信息可能有“姓名”“年齡”,另一個用戶可能多了“愛好”字段)。
- 上手簡單:不需要提前設計嚴格的表結構,插入數據時自動創建集合(類似表),適合快速開發。
- 跨平臺支持:Windows、macOS、Linux都能安裝,社區文檔豐富。
三、安裝MongoDB(以常見系統爲例)¶
安裝前確保你的電腦已聯網,以下是不同系統的安裝步驟:
1. Windows系統安裝¶
- 步驟1:從MongoDB官網下載安裝包(點擊下載),選擇“Windows”版本,按提示安裝(注意勾選“Add MongoDB to PATH”,方便後續命令行操作)。
- 步驟2:驗證安裝是否成功:打開命令提示符(Win+R → 輸入
cmd),輸入mongod --version,如果顯示版本號則安裝成功。 - 步驟3:啓動MongoDB服務:在命令行輸入
mongod --dbpath=數據存儲路徑(例如mongod --dbpath=C:\data\db,若C:\data\db不存在,需手動創建文件夾)。服務啓動後會顯示類似“waiting for connections on port 27017”的提示。
2. macOS系統安裝¶
推薦用Homebrew安裝(更簡單):
- 步驟1:打開終端,輸入 brew tap mongodb/brew(添加MongoDB倉庫)。
- 步驟2:輸入 brew install mongodb-community(安裝社區版)。
- 步驟3:啓動服務:brew services list 查看MongoDB狀態,若未啓動則輸入 brew services start mongodb-community。
- 步驟4:驗證安裝:輸入 mongo --version 查看版本。
3. Linux系統安裝(Ubuntu爲例)¶
- 步驟1:打開終端,執行:
sudo apt update
sudo apt install -y mongodb
- 步驟2:啓動服務:
sudo systemctl start mongod(Ubuntu默認服務名是mongod)。 - 步驟3:驗證安裝:輸入
mongo --version查看版本。
四、MongoDB基本概念(快速理解)¶
- 數據庫(Database):存儲多個集合的容器,類似“文件夾”。
- 集合(Collection):存儲一組文檔的容器,類似“表”,無需預先創建,插入數據時自動生成。
- 文檔(Document):MongoDB的最小數據單元,以BSON(二進制JSON)格式存儲,字段名唯一,鍵值對靈活(例如:
{"name": "Alice", "age": 18, "hobbies": ["reading", "sports"]})。
五、連接MongoDB(進入命令行界面)¶
安裝並啓動MongoDB服務後,打開新的終端窗口,輸入 mongo 即可進入MongoDB的命令行界面(Mongo Shell),這是我們操作數據庫的“控制檯”。
成功連接後,你會看到類似以下提示:
MongoDB shell version v6.0.5
connecting to: mongosh "mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.9.1"
...
>
(> 是Mongo Shell的命令提示符,接下來的操作都在這裏執行)
六、創建第一個數據庫:school¶
MongoDB中,數據庫不需要“顯式創建”——只要你選擇一個不存在的數據庫(通過use命令),MongoDB就會自動創建它。
步驟1:切換到school數據庫¶
在Mongo Shell中輸入:
use school
執行後會顯示:switched to db school。此時,“school”數據庫已被創建(即使你還沒插入任何數據)。
步驟2:創建集合(students)並插入數據¶
集合(Collection)是數據庫中的“表”,同樣無需預先定義。我們先創建一個名爲students的集合,並插入幾條學生信息:
// 插入單個文檔(學生Alice)
db.students.insertOne({
name: "Alice",
age: 18,
gender: "female",
hobbies: ["reading", "painting"]
})
// 插入多個文檔(學生Bob和Charlie)
db.students.insertMany([
{ name: "Bob", age: 19, gender: "male", hobbies: ["basketball", "coding"] },
{ name: "Charlie", age: 17, gender: "male", hobbies: ["gaming", "hiking"] }
])
insertOne:插入單個文檔,返回插入結果(包含_id,MongoDB自動生成的唯一ID)。insertMany:插入多個文檔,返回包含所有插入結果的數組。
步驟3:查詢數據庫中的數據¶
插入數據後,用find()方法查詢students集合中的所有文檔:
// 查詢所有學生(toArray()將結果轉爲數組,方便查看)
db.students.find().toArray()
執行後會返回類似以下結果(_id是自動生成的唯一標識):
[
{
"_id": ObjectId("64d5..."),
"name": "Alice",
"age": 18,
"gender": "female",
"hobbies": ["reading", "painting"]
},
{
"_id": ObjectId("64d5..."),
"name": "Bob",
"age": 19,
"gender": "male",
"hobbies": ["basketball", "coding"]
},
{
"_id": ObjectId("64d5..."),
"name": "Charlie",
"age": 17,
"gender": "male",
"hobbies": ["gaming", "hiking"]
}
]
七、總結與下一步¶
恭喜!你已經完成了MongoDB的安裝、第一個數據庫(school)和集合(students)的創建,還插入並查詢了數據。
MongoDB的核心特點是靈活的文檔結構和無需預定義表結構,適合快速開發。接下來可以嘗試:
- 用updateOne()更新某個學生的年齡(例如:db.students.updateOne({name: "Alice"}, {$set: {age: 19}}))。
- 用deleteOne()刪除某個學生(例如:db.students.deleteOne({name: "Charlie"}))。
想深入學習可參考MongoDB官方文檔,或嘗試用MongoDB存儲更復雜的場景(如博客系統、用戶數據等)。
小提示:如果MongoDB服務意外關閉,只需重新在終端輸入mongod(Windows需先確保mongod路徑正確)即可重啓服務。