Node.js - MongoDB 開始使用

您好,未來的數據庫魔法師們!今天,我們將踏上一段令人興奮的旅程,進入 Node.js 和 MongoDB 的世界。作為你們友好的鄰居計算機老師,我將在這次冒險中指導你們,一步步前行。不用擔心你們對編程陌生——我們將從最基本的知識開始學習,然後逐步提升。所以,戴上你們的虛擬安全帽,我們一起來潛入水中吧!

Node.js - MongoDB Get Started

MongoDB 是什麼?

在我們開始編程之前,讓我們先來了解 MongoDB 是什麼。想像你正在整理你的漫畫書收藏。你可能會有不同的盒子來分裝 Marvel、DC 和獨立漫畫。MongoDB 就像是一個巨大的數字化漫畫書整理器,用於你的數據。它是一個 NoSQL 數據庫,這意味著它靈活並能夠處理各種數據,而不需要嚴格的結構。

安裝

步驟 1:安裝 Node.js

首先,我們需要安裝 Node.js。這就像在開始一個項目之前設置你的工作台。

  1. 訪問 Node.js 官方網站(https://nodejs.org/)。
  2. 下載適合你操作系統的版本。
  3. follow 安裝向導。

為了檢查 Node.js 是否正確安裝,打開你的終端或命令提示符並輸入:

node --version

如果你看到了版本號,那麼你就準備好了!

步驟 2:安裝 MongoDB

現在,讓我們來安裝 MongoDB——我們的數字化漫畫書整理器。

  1. 訪問 MongoDB 下載頁面(https://www.mongodb.com/try/download/community)。
  2. 選擇你的操作系統並下載安裝程序。
  3. 運行安裝程序並 follow 提示。

安裝完畢後,你可能需要將 MongoDB 添加到系統的 PATH。別擔心,這並不複雜。這就像告訴你的計算機在你想使用它時去哪裡找到 MongoDB。

MongoDB 驅動程序

現在我們有了工具,我們需要一種方法讓 Node.js 與 MongoDB 進行通信。這就是 MongoDB 驅動程序的作用。把它當成是 Node.js 和 MongoDB 之間的翻譯。

安裝 MongoDB 驅動程序

打開終端,導航到你們的項目文件夹,並運行:

npm init -y
npm install mongodb

第一個命令設置你的項目,第二個命令安裝 MongoDB 驅動程序。這就像打開你的工具箱,確保你有所有的正確工具。

連接到 MongoDB

好了,現在來到令人興奮的部分——連接到我們的數據庫!讓我們寫一些代碼來實現這一點。

在你們的項目文件夹中創建一個名為 app.js 的新文件並添加以下代碼:

const { MongoClient } = require('mongodb');

// 連接 URL
const url = 'mongodb://localhost:27017';

// 數據庫名稱
const dbName = 'myProject';

// 創建新的 MongoClient
const client = new MongoClient(url);

// 使用 connect 方法來連接到服務器
async function connect() {
try {
await client.connect();
console.log("成功連接到服務器");

const db = client.db(dbName);

// 在這裡執行數據庫操作

} catch (err) {
console.error("連接數據庫時出錯", err);
} finally {
await client.close();
}
}

connect();

讓我們分解一下:

  1. 我們從 MongoDB 驅動程序中導入 MongoClient
  2. 我們指定 MongoDB 服務器運行的 URL。localhost:27017 是本地安裝的默認值。
  3. 我們給我們的數據庫命名為 myProject
  4. 我們使用 URL 創建一個新的 MongoClient
  5. 我們定義一個名為 connect()async 函數。async 函數就像耐心的朋友,等待任務完成後再繼續前進。
  6. connect() 函數內部,我們使用 try/catch/finally 來優雅地處理潛在的錯誤。
  7. 我們使用 await client.connect() 來連接到服務器。await 遵詞就像說,“等一下,讓我們等待這個完成再繼續”。
  8. 如果連接成功,我們記錄一條消息並獲取對我們數據庫的引用。
  9. 最後,我們在 finally �塊中關閉連接。

運行這段代碼,保存文件並在終端中輸入 node app.js。如果一切設置正確,你應該會在控制台看到“成功連接到服務器”的打印信息。

恭喜你們!你們剛剛使用 Node.js 連接到 MongoDB。這就像打你的第一次電話——興奮吧?

執行數據庫操作

現在我們已經連接成功了,讓我們做點什麼吧。我們將添加一個簡單的操作,將一個文檔插入到集合中。

更新你的 app.js 文件:

// ... (之前的代碼保持不變)

async function connect() {
try {
await client.connect();
console.log("成功連接到服務器");

const db = client.db(dbName);
const collection = db.collection('superheroes');

// 插入一個文檔
const result = await collection.insertOne({
name: 'Spider-Man',
realName: 'Peter Parker',
powers: ['web-slinging', 'spider-sense', 'superhuman strength']
});

console.log(`插入文檔的 _id: ${result.insertedId}`);

} catch (err) {
console.error("執行數據庫操作時出錯", err);
} finally {
await client.close();
}
}

connect();

這裡有什麼新穎的:

  1. 我們創建了一個指向名為 'superheroes' 的集合的引用。
  2. 我們使用 insertOne() 方法將一個新文檔添加到我們的集合中。
  3. 我們記錄插入的文檔的 _id

再次運行腚本,使用 node app.js。你應該看到一條消息,確認文檔已被插入,以及它的 _id

查詢數據

讓我們添加另一個操作來查詢我們剛才插入的文檔:

// ... (之前的代碼保持不變)

async function connect() {
try {
await client.connect();
console.log("成功連接到服務器");

const db = client.db(dbName);
const collection = db.collection('superheroes');

// 插入一個文檔
const insertResult = await collection.insertOne({
name: 'Spider-Man',
realName: 'Peter Parker',
powers: ['web-slinging', 'spider-sense', 'superhuman strength']
});

console.log(`插入文檔的 _id: ${insertResult.insertedId}`);

// 查找我們剛才插入的文檔
const findResult = await collection.findOne({ name: 'Spider-Man' });
console.log("找到的文檔:", findResult);

} catch (err) {
console.error("執行數據庫操作時出錯", err);
} finally {
await client.close();
}
}

connect();

現在我們使用 findOne() 方法來查找我們剛才插入的文檔。這就像問我們的數據庫,“嘿,你能為我找到 Spider-Man 嗎?”

最後一次運行腚本。你應該在控制台看到插入消息和找到的文檔。

結論

恭喜你們!你們剛剛踏入了 Node.js 和 MongoDB 的世界。我們已經介紹了安裝、連接和基本操作。記住,學習與數據庫工作是學習一種新的超能力——它需要練習,但很快你將會像專家一樣操作數據!

這裡是我們使用的方法的快速回顧:

方法 描述
MongoClient.connect() 連接到 MongoDB 服務器
client.db() 獲取數據庫的引用
db.collection() 獲取集合的引用
collection.insertOne() 將單個文檔插入到集合中
collection.findOne() 在集合中查找單個文檔

繼續練習,保持好奇心,很快你將會使用 Node.js 和 MongoDB 建立令人驚艷的應用程序。祝編程愉快,未來的數據庫超級英雄!

Credits: Image by storyset