2024-09-02|閱讀時間 ‧ 約 22 分鐘

Node.js 程式札記 : MongoDB 資料庫操作

MongoDB 是一個靈活的 NoSQL 資料庫,這篇文章將帶你了解如何在 Node.js 中操作MongoDB 資料庫,包括基本連接、CRUD操作,以及如何使用 Mongoose ODM 來簡化資料庫操作。

連接 MongoDB

首先,我們需要安裝必要的套件。在你的專案目錄中,打開終端機並執行以下指令:

npm init -y
npm install mongodb

現在,讓我們建立一個名為app.js的檔案,並加入以下程式碼來連接MongoDB:

// app.js
const { MongoClient } = require('mongodb');

const url = 'mongodb://localhost:27017';
const dbName = 'myproject';

async function connectToMongo() {
try {
const client = await MongoClient.connect(url);
console.log('成功連接到MongoDB');
const db = client.db(dbName);
return db;
} catch (error) {
console.error('連接MongoDB時發生錯誤:', error);
process.exit(1);
}
}

module.exports = { connectToMongo };

這段程式碼建立了一個connectToMongo函式,用於連接到本機MongoDB伺服器。確保你已經安裝並執行了MongoDB。

CRUD 操作

接下來,我們將實現基本的CRUD(建立、讀取、更新、刪除)操作。建立一個名為crudOperations.js的新檔案:

// crudOperations.js
const { connectToMongo } = require('./app');

async function performCRUDOperations() {
const db = await connectToMongo();
const collection = db.collection('users');

// 建立(Create)
const insertResult = await collection.insertOne({ name: '張三', age: 30 });
console.log('插入的文件:', insertResult.insertedId);

// 讀取(Read)
const findResult = await collection.findOne({ name: '張三' });
console.log('找到的文件:', findResult);

// 更新(Update)
const updateResult = await collection.updateOne(
{ name: '張三' }
{ $set: { age: 31 } }
);
console.log('更新的文件數:', updateResult.modifiedCount);

// 刪除(Delete)
const deleteResult = await collection.deleteOne({ name: '張三' });
console.log('刪除的文件數:', deleteResult.deletedCount);
}

performCRUDOperations().catch(console.error);

這個範例展示了如何執行基本的CRUD操作。你可以透過執行node crudOperations.js來測試這些操作。

使用 Mongoose ODM

Mongoose 可以讓 MongoDB 的使用變得更簡單。首先,安裝 Mongoose :

npm install mongoose

然後,建立一個名為mongooseExample.js的新檔案:

// mongooseExample.js
const mongoose = require('mongoose');

// 連接MongoDB
mongoose.connect('mongodb://localhost:27017/myproject')
.then(() => console.log('成功連接到MongoDB'))
.catch(err => console.error('連接MongoDB時發生錯誤:', err));

// 定義模型
const User = mongoose.model('User', {
name: String,
age: Number
});

async function mongooseOperations() {
try {
// 建立
const user = new User({ name: '李四', age: 25 });
await user.save();
console.log('使用者已儲存');

// 讀取
const foundUser = await User.findOne({ name: '李四' });
console.log('找到的使用者:', foundUser);

// 更新
foundUser.age = 26;
await foundUser.save();
console.log('使用者已更新');

// 刪除
await User.deleteOne({ name: '李四' });
console.log('使用者已刪除');
} catch (error) {
console.error('操作過程中發生錯誤:', error);
} finally {
// 關閉連接
await mongoose.connection.close();
console.log('資料庫連接已關閉');
}
}

mongooseOperations();

這個範例展示了如何使用 Mongoose 來定義模型並執行 CRUD 操作。執行node mongooseExample.js來測試這些操作。

總結

在這篇文章中,我們學習了如何在 Node.js 中操作MongoDB資料庫。我們從基本的連接開始到原生驅動程式的 CRUD 操作,最後介紹了如何使用 Mongoose ODM 來簡化資料庫操作。這些知識為你開發 Node.js 和 MongoDB 應用程式提供了紮實的基礎。記住,在實際應用中要注意資料驗證、錯誤處理和安全性。

分享至
成為作者繼續創作的動力吧!
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 aowulife109@gmail.com。
© 2024 vocus All rights reserved.