ขั้นตอนแรกในการใช้ 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 จะยืดหยุ่นมากและสามารถใกล้ระหว่างข้อมูลรูปแบบต่างๆ สำหรับการประยุกต์ใช้จริงโครงสร้างขอ้มูลภายในคอลเลกชันมักจะเป็นไปตามมาตรฐาน มิฉะนั้นหากรูปแบบของข้อมูลในแต่ละรายการที่เก็บไว้ภายในคอลเลกชันมีความแตกต่างกัน การบำรุงรักษามันจะเป็นฝันร้ายเนื่องจากคุณจะไม่ทราบรูปแบบขอ้มูลที่ดึงข้อมูลทุกครั้งได้