ขั้นตอนแรกในการใช้ MongoDB คือเข้าใจแนวคิดพื้นฐานของ MongoDB และโมเดลข้อมูล (โครงสร้างข้อมูล) โดยทราบวิธีที่ข้อมูลถูกเก็บรักษา ในความเป็นจริงแล้ว MongoDB คล้ายกับ MySQL มาก ดังนั้นผู้ที่ทราบเกี่ยวกับ MySQL จะไม่มีความยากลำบากในการเรียนรู้ MongoDB
แนวคิดพื้นฐานของ MongoDB
ฐานข้อมูล
ฐานข้อมูล MongoDB เหมือนกับ ฐานข้อมูล MySQL
คอลเลกชัน
คอลเลกชัน MongoDB หมายถึง คอลเลกชันของข้อมูลเอกสาร คล้ายกับแนวคิดของตารางใน MySQL
เอกสาร
เอกสาร MongoDB คล้ายกับแถวของข้อมูลในตาราง MySQL เป็นข้อมูลโครงสร้าง JSON ประกอบด้วยฟิลด์หลายๆ ฟิลด์ซึ่งทำให้โครงสร้างของเอกสารใน MongoDB มีความยืดหยุ่นมาก
ฟิลด์
ฟิลด์ของเอกสาร MongoDB คล้ายกับแนวคิดของฟิลด์ในตาราง MySQL แทนการจัดเก็บข้อมูลที่แน่นอนฟิลด์ละเอียด
ดัชนี
ดัชนี MongoDB เหมือนกับดัชนี MySQL มีวัตถุประสงค์ในการเพิ่มประสิทธิภาพการคิวรี
การรวมข้อมูล
แนวคิดของการรวมข้อมูลของ MongoDB คล้ายกับการวิเคราะห์การรวมข้อมูลด้วย Group by/Count/Sum ใน MySQL ใช้สำหรับการวิเคราะห์ข้อมูลทางสถิติ
การเปรียบเทียบแนวคิดระหว่าง MongoDB และ MySQL
MYSQL | MongoDB |
---|---|
ฐานข้อมูล | ฐานข้อมูล |
ตาราง | คอลเลกชัน |
แถว | เอกสาร |
คอลัมน์ | ฟิลด์ของเอกสาร |
ดัชนี | ดัชนี |
การรวมข้อมูล (เช่น group by) | การรวมข้อมูล |
โดยพื้นฐานแล้ว แนวคิดของ MongoDB สามารถสอดคล้องกับ MySQL ดังนั้น MongoDB เป็นฐานข้อมูลแบบ non-relational ที่คล้ายกับฐานข้อมูล relational (NoSQL) มากที่สุด
ข้อมูลเอกสารของ MongoDB
เอกสารเป็นโครงสร้าง JSON ที่ประกอบด้วยฟิลด์หลายๆ ฟิลด์ แต่ละฟิลด์มีประเภทข้อมูลของตัวเอง ในขณะที่พัฒนาด้วย MongoDB การให้ความสำคัญมากที่สุดคือวิธีการออกแบบโครงสร้างของเอกสาร คล้ายกับวิธีการใช้ในการออกแบบโครงสร้างของตารางของ MySQL
ตัวอย่างของข้อมูลเอกสารของ MongoDB:
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": "90404"
},
"hobbies": ["surfing", "coding"]
}
มันสามารถเป็นโครงสร้าง JSON ที่ซับซ้อนอย่างใดก็ได้ สิ่งที่เป็นไปได้ที่สุด ในการเก็บข้อมูลที่ว่างเปล่าของเอกสารคือฟิลด์ _id
และหากคุณไม่ระบุค่าเฉพาะ MongoDB จะสร้างค่าที่ไม่ซ้ำกันออกมาเอง
ความแตกต่างที่สำคัญที่สุดระหว่างโครงสร้างข้อมูลของ MongoDB และตาราง MySQL คือ MongoDB ไม่ต้องการการกำหนดโครงสร้างล่วงหน้า ด้วย MongoDB คุณสามารถแทรกข้อมูล JSON โดยตรงลงในคอลเลกชันโดยไม่จำเป็นต้องมี schema ที่กำหนดล่วงหน้า ทุกครั้งที่คุณเขียนข้อมูล JSON เข้าสู่คอลเลกชัน MongoDB รูปแบบอาจแตกต่างกันไป ซึ่งอนุญาตให้ฟิลด์ถูกเพิ่มหรือถูกลบได้ตามต้องการ
หมายเหตุ: แม้ว่าโครงสร้างขอ้มูลของ MongoDB จะยืดหยุ่นมากและสามารถใกล้ระหว่างข้อมูลรูปแบบต่างๆ สำหรับการประยุกต์ใช้จริงโครงสร้างขอ้มูลภายในคอลเลกชันมักจะเป็นไปตามมาตรฐาน มิฉะนั้นหากรูปแบบของข้อมูลในแต่ละรายการที่เก็บไว้ภายในคอลเลกชันมีความแตกต่างกัน การบำรุงรักษามันจะเป็นฝันร้ายเนื่องจากคุณจะไม่ทราบรูปแบบขอ้มูลที่ดึงข้อมูลทุกครั้งได้