iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
Modern Web

現在就學Node.js系列 第 17

MongoDB 之 CRUD 操作 — Create、Read、Update、Delete - Day17

  • 分享至 

  • xImage
  •  

為什麼要學 CRUD?

在資料庫世界裡,有四個最基本的操作:

  • C (Create) → 建立新資料
  • R (Read) → 讀取資料
  • U (Update) → 更新資料
  • D (Delete) → 刪除資料

這四個動作統稱 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();


1. Create — 建立新資料

insertOneinsertMany 建立新文件:

await users.insertOne({ name: "Alice", age: 25 });
await users.insertMany([
  { name: "Bob", age: 28 },
  { name: "Charlie", age: 35 }
]);
console.log("✅ 已新增使用者");

2. Read — 查詢資料

findfindOne 讀取資料:

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);

3. Update — 更新資料

updateOneupdateMany

await users.updateOne(
  { name: "Alice" },
  { $set: { age: 26 } }
);

console.log("✅ Alice 年齡已更新");

👉 注意:

  • $set → 更新指定欄位
  • $inc → 數值增加/減少
  • $push → 陣列新增元素

4. Delete — 刪除資料

deleteOnedeleteMany

await users.deleteOne({ name: "Charlie" });
console.log("✅ 已刪除 Charlie");

await users.deleteMany({ age: { $lt: 30 } });
console.log("✅ 刪除所有小於 30 歲的使用者");

📝 CRUD 小結

到目前為止,我們已經完成了 MongoDB 的四大基本操作:

  • Create → 新增文件(insertOne / insertMany
  • Read → 查詢文件(find / findOne
  • Update → 修改文件(updateOne / updateMany 搭配 $set, $inc, $push …)
  • Delete → 刪除文件(deleteOne / deleteMany

這四個步驟合起來就是大家常聽到的 CRUD,它幾乎是任何應用程式在操作資料時的核心。

今天我們主要練習的是 在 MongoDB 中直接執行 CRUD,了解它最原始的操作方式。

但在實際的專案裡,這些資料操作通常不會直接暴露給使用者,而是會被包裝成 API,讓前端或其他服務透過 API 來進行呼叫。

所以明天的內容,就是把這些 CRUD 行為轉換成 RESTful API,讓它真正能服務前端應用,之後的說明還會再加上驗證、安全性與權限管理。

備註:

如想了解更多指令操作,可至官網 db. 集合()(mongosh方法) - 数据库手册 - MongoDB Docs 參考。


上一篇
MongoDB 基礎與連接 - Day16
系列文
現在就學Node.js17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言