Skip to main content

สารจากนักเขียน

ในปัจจุบันที่เรียกว่า 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 และอื่นๆ จะกลายเป็นเรื่องง่ายขึ้นอย่างแน่นอน

Danita Sanmahachai

Author Danita Sanmahachai

Business Analyst 👩‍💻 Always learning, forever ambitious. Let's explore the coding world together!

More posts by Danita Sanmahachai

Leave a Reply

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า