Introduction to MongoDB
บทนำ
MongoDB เป็นฐานข้อมูล NoSQL ชนิดหนึ่งที่มีความยืดหยุ่นและใช้งานง่าย ใช้รูปแบบการเก็บข้อมูลแบบเอกสาร (Document-oriented) ซึ่งช่วยให้สามารถจัดเก็บและดึงข้อมูลได้อย่างรวดเร็ว และเหมาะสำหรับการพัฒนาแอปพลิเคชันที่ต้องการความเร็วและการปรับขนาด (scalability)
คุณสมบัติของ MongoDB
- NoSQL Database: เก็บข้อมูลในรูปแบบ JSON-like (BSON)
- Schema-less: ไม่มีโครงสร้างข้อมูลที่ตายตัว ช่วยเพิ่มความยืดหยุ่น
- Scalability: รองรับการกระจายข้อมูล (Sharding) และการขยายตัวของฐานข้อมูล
- High Performance: รองรับการเขียนและอ่านข้อมูลอย่างรวดเร็ว
- Rich Query Language: รองรับการค้นหาและจัดการข้อมูลที่ซับซ้อน
แนวคิดหลักใน MongoDB
1. Documents
- เป็นหน่วยข้อมูลพื้นฐานใน MongoDB
- มีโครงสร้างแบบ JSON-like ตัวอย่าง:
{
"_id": "12345",
"name": "John Doe",
"age": 30,
"skills": ["JavaScript", "Python", "MongoDB"]
}
2. Collections
- กลุ่มของ Documents ที่มีลักษณะคล้ายกัน เช่น Collection
usersเก็บข้อมูลผู้ใช้
3. Database
- ที่เก็บ Collections หลายตัว
4. BSON
- Binary JSON: รูปแบบที่ MongoDB ใช้สำหรับการจัดเก็บข้อมูล มีขนาดเล็กและประสิทธิภาพสูง
5. Indexes
- ช่วยเพิ่มความเร็วในการค้นหา โดยสามารถสร้าง Index บนฟิลด์ที่ต้องการ
6. Replication
- ช่วยสร้างสำเนาข้อมูลในหลายเครื่องเพื่อเพิ่มความทนทาน (fault tolerance)
7. Sharding
- การกระจายข้อมูลไปยังหลายเครื่องเพื่อรองรับการขยายตัว
การติดตั้ง MongoDB
1. บน Linux
sudo apt update
sudo apt install -y mongodb
2. บน macOS
brew tap mongodb/brew
brew install mongodb-community
3. บน Windows
- ดาวน์โหลดจาก MongoDB Download Center
- ติดตั้งตามขั้นตอนใน Wizard
4. ตรวจสอบการติดตั้ง
mongod --version
การใช้งานเบื้องต้น
1. เริ่มต้น MongoDB Server
mongod
2. เชื่อมต่อกับ MongoDB Shell
mongo
3. สร้าง Database
use myDatabase
4. สร้าง Collection
db.createCollection("users")
5. เพิ่ม Document
db.users.insertOne({
name: "Alice",
age: 25,
skills: ["Node.js", "React"]
})
6. ค้นหา Document
db.users.find({ name: "Alice" })
7. อัปเดต Document
db.users.updateOne({ name: "Alice" }, { $set: { age: 26 } })
8. ลบ Document
db.users.deleteOne({ name: "Alice" })
การออกแบบฐานข้อมูลที่ดีใน MongoDB
- ออกแบบ Schema ให้เหมาะสม: เลือกเก็บข้อมูลในรูปแบบที่สัมพันธ์กับการใช้งานจริง
- สร้าง Index ที่เหมาะสม: เพื่อเพิ่มประสิทธิภาพการค้นหา
- ใช้ Replication และ Sharding: สำหรับระบบที่ต้องการความทนทานและรองรับการขยายตัว
- ตรวจสอบ Query Performance: ใช้
explain()เพื่อตรวจสอบประสิทธิภาพการค้นหา
สรุป
MongoDB เป็นฐานข้อมูล NoSQL ที่ทรงพลังและเหมาะสำหรับการพัฒนาแอปพลิเคชันยุคใหม่ การเรียนรู้พื้นฐานและการนำไปใช้งานอย่างถูกต้องช่วยเพิ่มประสิทธิภาพและความยืดหยุ่นในการจัดการข้อมูลได้อย่างมาก