零基礎學MongoDB:從安裝到第一個數據庫創建

一、MongoDB是什麼?

MongoDB是一種文檔型數據庫,它不像傳統的關係型數據庫(如MySQL)用表格存儲數據,而是用類似JSON的“文檔”(BSON格式)來存儲信息。這種方式對初學者更友好——不需要記住複雜的SQL語法,直接用熟悉的鍵值對結構就能輕鬆管理數據。

二、爲什麼選MongoDB?

  1. 直觀易懂:數據以“文檔”形式存儲,每個文檔可以有不同的字段(鍵值對),適合靈活多變的數據結構(比如一個用戶信息可能有“姓名”“年齡”,另一個用戶可能多了“愛好”字段)。
  2. 上手簡單:不需要提前設計嚴格的表結構,插入數據時自動創建集合(類似表),適合快速開發。
  3. 跨平臺支持: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路徑正確)即可重啓服務。

小夜