Documents and BSON
บทนำ
ใน MongoDB ข้อมูลจะถูกจัดเก็บในรูปแบบ Documents ซึ่งเป็นโครงสร้าง JSON-like ที่ง่ายต่อการอ่านและเข้าใจ ขณะที่ BSON (Binary JSON) เป็นรูปแบบข้อมูลที่ MongoDB ใช้จริงในการจัดเก็บข้อมูล เพื่อเพิ่มประสิทธิภาพและความยืดหยุ่น
Documents
คุณสมบัติของ Documents
- JSON-like Structure: มีโครงสร้างคล้าย JSON ทำให้อ่านและเขียนง่าย
- Schema-less: ไม่มีโครงสร้างข้อมูลที่ตายตัว ช่วยให้สามารถเก็บข้อมูลที่มีรูปแบบต่างกันได้ใน Collection เดียวกัน
- Key-Value Pairs: ข้อมูลใน Document ถูกเก็บในรูปแบบคู่คีย์-ค่า เช่น:
{
"_id": "12345",
"name": "Alice",
"age": 30,
"skills": ["Python", "JavaScript"]
}
โครงสร้างของ Documents
- คีย์ (Key): ต้องเป็นสตริงที่ไม่ซ้ำกันในระดับเดียวกัน
- ค่า (Value): รองรับหลายประเภท เช่น ตัวเลข, สตริง, อาร์เรย์, ออบเจกต์, หรือ Null
- ข้อมูลใน Documents สามารถซ้อนกันได้ (Nested)
ตัวอย่าง Documents
{
"_id": "101",
"name": "John",
"email": "[email protected]",
"orders": [
{ "order_id": 1, "amount": 100 },
{ "order_id": 2, "amount": 200 }
]
}
BSON (Binary JSON)
ความหมายของ BSON
- BSON ย่อมาจาก Binary JSON เป็นรูปแบบข้อมูลที่ MongoDB ใช้สำหรับการจัดเก็บและส่งข้อมูล
- ถูกออกแบบมาให้มีประสิทธิภาพสูงในการจัดการข้อมูลในรูปแบบไบนารี
คุณสมบัติของ BSON
- Binary Format: ใช้การเข้ารหัสข้อมูลในรูปแบบไบนารี ทำให้การประมวลผลเร็วกว่า JSON
- Rich Data Types: รองรับประเภทข้อมูลเพิ่มเติมที่ JSON ไม่รองรับ เช่น Date, ObjectId, Binary Data
- Efficient Storage: มีการปรับแต่งขนาดเพื่อการจัดเก็บข้อมูลที่มีประสิทธิภาพ
โครงสร้างของ BSON
- BSON เก็บข้อมูลเป็นชุดของคีย์-ค่าเหมือนกับ JSON แต่มีการเข้ารหัสในรูปแบบไบนารี
- ตัวอย่างประเภทข้อมูลใน BSON:
StringInteger(32-bit, 64-bit)BooleanDateObjectId
ตัวอย่างการแปลง JSON เป็น BSON
- JSON:
{
"name": "Alice",
"age": 25
}
ข้อดีของ BSON
- รองรับการจัดเก็บข้อมูลในรูปแบบที่ซับซ้อน
- ประสิทธิภาพสูงในการค้นหาและดึงข้อมูล
- มีการบีบอัดข้อมูลเพื่อลดขนาดการจัดเก็บ
การทำงานร่วมกันของ Documents และ BSON
- เมื่อผู้ใช้ส่งข้อมูลในรูปแบบ JSON ไปยัง MongoDB Server:
- JSON จะถูกแปลงเป็น BSON ก่อนการจัดเก็บ
- เมื่อดึงข้อมูลจาก MongoDB Server:
- BSON จะถูกแปลงกลับเป็น JSON เพื่อให้ผู้ใช้สามารถอ่านได้ง่าย
ตัวอย่างการใช้งาน
เพิ่ม Document ลงใน Collection
db.users.insertOne({
name: "Alice",
age: 30,
skills: ["Python", "MongoDB"]
})
ค้นหา Document
db.users.find({ name: "Alice" })
สรุป
- Documents และ BSON เป็นพื้นฐานสำคัญของ MongoDB โดย Documents ช่วยให้การจัดการข้อมูลเป็นเรื่องง่าย ในขณะที่ BSON ช่วยเพิ่มประสิทธิภาพในการจัดเก็บและประมวลผล
- การทำความเข้าใจ Documents และ BSON จะช่วยให้สามารถออกแบบฐานข้อมูล MongoDB ที่มีประสิทธิภาพและยืดหยุ่นได้อย่างเหมาะสม