Database and Collections
บทนำ
ใน MongoDB การจัดเก็บข้อมูลแบ่งออกเป็นสองระดับหลัก คือ Database และ Collection ซึ่งมีความยืดหยุ่นสูงและสามารถปรับเปลี่ยนให้เหมาะสมกับความต้องการของแอปพลิเคชันได้
Database ใน MongoDB
- Database เป็นกลุ่มของ Collections ที่มีความสัมพันธ์กัน
- ในหนึ่ง MongoDB Server สามารถมีหลาย Databases ได้
- ฐานข้อมูลที่สำคัญ:
admin: ฐานข้อมูลสำหรับการดูแลระบบlocal: เก็บข้อมูลที่เกี่ยวข้องกับเครื่องเซิร์ฟเวอร์โดยตรง เช่น การ Replicationconfig: เก็บข้อมูลการกำหนดค่าของ Sharding
คำสั่งที่เกี่ยวข้องกับ Database
สร้างหรือเปลี่ยนฐานข้อมูล
use myDatabase
หมายเหตุ: หากฐานข้อมูล
myDatabaseยังไม่มีอยู่ จะถูกสร้างขึ้นเมื่อมีการเพิ่มข้อมูลลงไป
ดูฐานข้อมูลทั้งหมด
show dbs
ลบฐานข้อมูล
db.dropDatabase()
Collection ใน MongoDB
- Collection เป็นกลุ่มของ Documents ที่มีลักษณะหรือโครงสร้างข้อมูลคล้ายกัน
- ไม่มีโครงสร้างที่ตายตัว (Schema-less)
- Collection จะถูกสร้างขึ้นเมื่อมีการเพิ่มข้อมูล Document แรก
คำสั่งที่เกี่ยวข้องกับ Collection
สร้าง Collection
db.createCollection("users")
ดู Collections ทั้งหมดใน Database ปัจจุบัน
show collections
ลบ Collection
db.users.drop()
ความสัมพันธ์ระหว่าง Database และ Collections
- ฐานข้อมูลหนึ่งสามารถมีหลาย Collections
- Collections ภายในฐานข้อมูลเดียวกันสามารถมี Documents ที่มีโครงสร้างข้อมูลต่างกันได้ เช่น:
- Collection
users:{
"_id": "12345",
"name": "Alice",
"age": 30
} - Collection
orders:{
"_id": "67890",
"product": "Laptop",
"quantity": 1
}
- Collection
ตัวอย่างการใช้งาน
เพิ่ม Document ลงใน Collection
db.users.insertOne({
name: "John",
age: 25,
email: "[email protected]"
})
ค้นหา Document ใน Collection
db.users.find({ name: "John" })
อัปเดต Document ใน Collection
db.users.updateOne(
{ name: "John" },
{ $set: { age: 26 } }
)
ลบ Document ใน Collection
db.users.deleteOne({ name: "John" })
การออกแบบ Database และ Collections
- จัดกลุ่มข้อมูลที่สัมพันธ์กัน: เก็บข้อมูลที่มีความเกี่ยวข้องกันใน Collection เดียวกัน
- ใช้ชื่อที่สื่อความหมาย: เช่น
users,products,orders - พิจารณาโครงสร้างข้อมูล: การเก็บข้อมูลที่ซับซ้อนใน Document เดียวอาจช่วยลดจำนวน Query
- สร้าง Index ที่เหมาะสม: เพื่อเพิ่มประสิทธิภาพในการค้นหา
สรุป
Database และ Collections เป็นส่วนสำคัญในการจัดการข้อมูลใน MongoDB โดยมีความยืดหยุ่นสูงและสามารถปรับให้เหมาะสมกับการใช้งานในหลายสถานการณ์ การออกแบบและใช้งานอย่างถูกต้องจะช่วยให้การจัดการข้อมูลเป็นไปอย่างมีประสิทธิภาพและง่ายต่อการปรับขยายในอนาคต