在資料庫世界裡,有四個最基本的操作:
這四個動作統稱 CRUD,幾乎所有應用程式(會員系統、訂單系統、留言板…)都離不開它。
今天我們就用 MongoDB + Node.js 來實作完整的 CRUD 操作。
延續昨天的程式,我們一樣先建立連線:
import { MongoClient, ObjectId } from "mongodb";
const url = "mongodb://localhost:27017";
const client = new MongoClient(url);
async function run() {
try {
await client.connect();
console.log("✅ 已連接 MongoDB");
const db = client.db("testdb");
const users = db.collection("users");
// 後面會在這裡做 CRUD 操作
} catch (err) {
console.error("❌ 發生錯誤:", err);
} finally {
await client.close();
}
}
run();
用 insertOne
或 insertMany
建立新文件:
await users.insertOne({ name: "Alice", age: 25 });
await users.insertMany([
{ name: "Bob", age: 28 },
{ name: "Charlie", age: 35 }
]);
console.log("✅ 已新增使用者");
用 find
或 findOne
讀取資料:
const allUsers = await users.find().toArray();
console.log("📌 所有使用者:", allUsers);
const alice = await users.findOne({ name: "Alice" });
console.log("📌 找到 Alice:", alice);
你可以加上 條件查詢:
const adults = await users.find({ age: { $gte: 30 } }).toArray();
console.log("📌 30 歲以上:", adults);
用 updateOne
或 updateMany
:
await users.updateOne(
{ name: "Alice" },
{ $set: { age: 26 } }
);
console.log("✅ Alice 年齡已更新");
👉 注意:
$set
→ 更新指定欄位$inc
→ 數值增加/減少$push
→ 陣列新增元素用 deleteOne
或 deleteMany
:
await users.deleteOne({ name: "Charlie" });
console.log("✅ 已刪除 Charlie");
await users.deleteMany({ age: { $lt: 30 } });
console.log("✅ 刪除所有小於 30 歲的使用者");
到目前為止,我們已經完成了 MongoDB 的四大基本操作:
insertOne
/ insertMany
)find
/ findOne
)updateOne
/ updateMany
搭配 $set
, $inc
, $push
…)deleteOne
/ deleteMany
)這四個步驟合起來就是大家常聽到的 CRUD,它幾乎是任何應用程式在操作資料時的核心。
今天我們主要練習的是 在 MongoDB 中直接執行 CRUD,了解它最原始的操作方式。
但在實際的專案裡,這些資料操作通常不會直接暴露給使用者,而是會被包裝成 API,讓前端或其他服務透過 API 來進行呼叫。
所以明天的內容,就是把這些 CRUD 行為轉換成 RESTful API,讓它真正能服務前端應用,之後的說明還會再加上驗證、安全性與權限管理。
如想了解更多指令操作,可至官網 db. 集合()(mongosh方法) - 数据库手册 - MongoDB Docs 參考。