สารจากนักเขียน
ในปัจจุบันที่เรียกว่า Data-driven world มีปริมาณข้อมูลมากมายในออนไลน์ จึงมีความจำเป็นอย่างมากในการมีที่จัดเก็บและจัดการข้อมูลเหล่านั้นอย่างมีประสิทธิภาพ
สำหรับ Developer แล้วจึงจำเป็นต้องมีความรู้ในการใช้เครื่องมือจัดการข้อมูลเหล่านี้ได้อย่างมีประสิทธิภาพ เครื่งมือที่เราจะมาแนะนำในวันนี้นั่นก็คือ MongoDB เป็นฐานข้อมูลที่อยู่บน clouds ที่มีแพลตฟอร์มให้สามารถจัดการได้อย่างง่าย รวมถึงสามารถเข้าถึงได้ง่ายอีกด้วย
ในบทความนี้เราจะพูดถึงวิธีการใช้งานตั้งแต่เริ่มต้นจนพร้อมใช้งานได้จริง สำหรับเพื่อนๆที่ทำโปรเจกต์ของตัวเอง สามารถกดตามสเตปเหล่านี้เพื่อสร้างฐานข้อมูลของตัวเองได้เลย !
MongoDB และ Mongoose คืออะไร ?
- MongoDB คือ Database software ประเภท NoSQL
- No SQL หมายถึง ฐานข้อมูลที่ไม่ใช่แบบเชิงสัมพันธ์ มี Schema(โครงสร้างฐานข้อมูล) แบบไดนามิก เหมาะกับข้อมูลที่ไม่มีโครงสร้างตายตัว เช่น เช่น Document หรือ JSON
- Mongoose คือไลบรารี Object Data Modeling (ODM) ของ MongoDB เพื่อให้สามารถเรียกใช้ MongoDB ในการเขียน Node.js
Set up MongoDB สำหรับโปรเจกต์
หลังจากที่ทำความรู้จักกับ MongoDB และ Mongoose กันแล้ว เพื่อน ๆ สามารถเข้าไปสร้าง Account ของตัวเองและสร้าง Database บน MongoDB ได้ตามสเตปด้านล่าง (สำหรับ Free Version) แต่หากเคยสร้างไว้แล้วสามารถไปกันต่อที่หัวข้อถัดไปได้เลยนะ
คลิกเพื่ออ่านต่อ👈
1.เข้าไปที่ Website : https://account.mongodb.com/account/login?nds=true
จากนั้น สมัครสมาชิก หรือ Sign-in เพื่อน ๆ สามารถเลือก sign-in โดย google/GitHub ได้
2.สร้างฐานข้อมูล เลือก M0 (Free) – Free version
(สำหรับบทความนี้จะเน้นไปที่การสร้างฐานข้อมูลเพื่อทำโปรเจกต์ของตัวเอง หากใช้บน Production จริงแนะนำว่าให้ใช้แบบเสียเงินถึงจะเพียงพอนะ)
- Create a share cluster : cloud provider :เลือก AWS
- Region : เลือก Singapore
- จากนั้นกด “Create”
3.ตั้งค่า Security
– สร้าง Username และ Password สำหรับ Database (จดไว้ด้วยนะ ได้ใช้ต่อใน step การเชื่อม Database)
– Where would you like to connect from เลือก “My local Environment”
– จากนั้นกด “Add my current Address”
– เลือก “Finish and Close”
[Note : เพื่อน ๆ สามารถเห็นได้ในกล่องสีชมพูว่า MongoDB ได้ Create organization, Project ให้อัตโนมัติ สามารถแก้ไขชื่อภายหลังได้]
4. Create cluster สำเร็จ
5 Steps เชื่อมต่อ Database MongoDB กับโปรเจคโปรเจกต์
หลังจากเพื่อน ๆ สร้าง Data บน Mongo DB เสร็จแล้ว เพื่อนๆสามารถเชื่อมต่อ สำหรับบทความนี้จะเลือกวิธี “Driver” สามารถทำตามสเตปดังนี้
คลิกเพื่ออ่านต่อ 👈
1. install package ที่จำเป็นเพื่อใช้ MongoDB (*Runใน terminal หรือ command line)
npm install mongoose
2. import module mongoose เพื่อเตรียมใช้งาน (*javascript)
const mongoose = require('mongoose');
3. สร้าง connection
- ไปที่ MongoDB => click “Connect”
เลือก “Driver”
Copy connection string ในกล่องสีฟ้า
กลับมาที่ VSCode
- past connection string (ตรง <Password> ให้วาง Password ที่เราตั้งไว้) (*javascript)
- เรียกใช้ MongoDB เพื่อตรวจสอบว่าการเชื่อมต่อสำเร็จ (*javascript)
mongoose.connect
('mongodb+srv://your-database-name:1222@cluster0.kdhue8d.mongodb.net/?retryWrites=true&w=majority',
{
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log('Connected to MongoDB');
// Start the server once connected to the database
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
})
.catch((err) => {
console.error('Error connecting to MongoDB:', err);
});
5.ตรวจสอบการเชื่อมต่อกับ MongoDB (*runใน terminal หรือ command line)
node app.js
ถ้าเชื่อมต่อสำเร็จ จะแสดงผลว่า “Connected to MongoDB”
Perform CRUD Operations
เมื่อสร้างการเชื่อมต่อแล้ว เพื่อน ๆ สามารถใช้ ODM เพื่อดำเนินการ CRUD (Create, Read, Update และ Delete,) บนฐานข้อมูล MongoDB ที่มีอยู่ได้
- Create : Add ข้อมูลใหม่ในฐานข้อมูล
- Read : แสดงผลข้อมูลที่มีอยู่ในฐานข้อมูล
- Update :แก้ไขข้อมูลที่มีอยู่ในฐานข้อมูล
- Delete : ลบข้อมูลที่มีอยู่ในฐานข้อมูล
ตัวอย่าง
const express = require('express');
const router = express.Router();
const Product = require('../models/product'); // Import your Mongoose model
// READ (Retrieve) all products
router.get('/', async (req, res, next) => {
try {
const products = await Product.find(); // Read: Retrieve all products
res.json(products);
} catch (err) {
next(err);
}
});
// READ (Retrieve) product by ID
router.get('/:id', async (req, res, next) => {
try {
const product = await Product.findById(req.params.id); // Read: Retrieve a product by ID
res.json(product);
} catch (err) {
next(err);
}
});
// CREATE (Insert) a new product
router.post('/', async (req, res, next) => {
try {
const product = await Product.create(req.body); // Create: Insert a new product
res.json(product);
} catch (err) {
next(err);
}
});
// UPDATE (Modify) an existing product
router.put('/:id', async (req, res, next) => {
try {
const product = await Product.findByIdAndUpdate(req.params.id, req.body, { new: true }); // Update: Modify an existing product
res.json(product);
} catch (err) {
next(err);
}
});
// DELETE an existing product by ID
router.delete('/:id', async (req, res, next) => {
try {
const product = await Product.findByIdAndDelete(req.params.id); // Delete: Remove a product by ID
res.json(product);
} catch (err) {
next(err);
}
});
module.exports = router;
เพื่อน ๆ สามารถทดสอบ CURD operation ได้โดยการ API testing โดยใช้ Extension ใน VS Code เช่น Postman หรือ Thunder client ได้
สรุป
ในบทความนี้เราได้แนะนำให้ทุกคนรู้จัก MongoDB ผ่านกระบวนการติดตั้ง การเชื่อมต่อกับโปรเจกต์ และการคำสั่ง CRUD ที่น่าสนใจ ทั้งนี้การจัดการฐานข้อมูลเป็นทักษะพื้นฐานที่สำคัญสำหรับ Developer เพื่อน ๆ อย่าลืมที่จะฝึกฝนและเรียนรู้อยู่เสมอ MongoDB และอื่นๆ จะกลายเป็นเรื่องง่ายขึ้นอย่างแน่นอน