ความหมายของ MongoDB? Archiเทคเจอร์ คุณสมบัติ และตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

MongoDB เป็นฐานข้อมูล NoSQL ที่เน้นเอกสาร ใช้สำหรับการจัดเก็บข้อมูลปริมาณมาก โดยใช้คอลเลกชันและเอกสารแทนตารางและแถว แหล่งข้อมูลนี้จะอธิบายเกี่ยวกับ... MongoDB คุณสมบัติ ตัวอย่างเอกสาร ส่วนประกอบสถาปัตยกรรมหลัก เหตุผลในการใช้งาน การสร้างแบบจำลองข้อมูล และความแตกต่างจากฐานข้อมูลเชิงสัมพันธ์

  • 📄 แบบจำลองเอกสาร: ข้อมูลจะถูกจัดเก็บในรูปแบบเอกสารคู่คีย์-ค่าภายในคอลเลกชัน ไม่ใช่ตาราง
  • 🧩 สคีมาแบบยืดหยุ่น: ฟิลด์ต่างๆ ถูกสร้างขึ้นแบบเรียลไทม์โดยไม่มีโครงสร้างที่กำหนดไว้ล่วงหน้า
  • 🏗️ ส่วนประกอบหลัก: _id, collection, document, field, cursor, database และ JSON
  • ⚙️ ทำไมต้องใช้: การสืบค้นข้อมูลเฉพาะกิจ การจัดทำดัชนี การจำลองข้อมูล และการแบ่งส่วนข้อมูลเพื่อรองรับการขยายขนาด
  • 🔄 เทียบกับ RDBMS: คอลเลกชันจะใช้แทนตาราง และเอกสารที่ฝังอยู่จะใช้แทนการเชื่อมต่อข้อมูล

ความหมายของ MongoDB

ความหมายของ MongoDB?

MongoDB เป็นฐานข้อมูล NoSQL เชิงเอกสารที่ใช้สำหรับการจัดเก็บข้อมูลปริมาณมาก แทนที่จะใช้ตารางและแถวเหมือนในฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม MongoDB ใช้คอลเลกชันและเอกสาร เอกสารประกอบด้วยคู่คีย์-ค่าซึ่งเป็นหน่วยพื้นฐานของข้อมูล MongoDBคอลเลกชันประกอบด้วยชุดของเอกสารและฟังก์ชัน ซึ่งเทียบเท่ากับตารางในฐานข้อมูลเชิงสัมพันธ์ MongoDB เป็นฐานข้อมูลที่เริ่มเป็นที่รู้จักในช่วงกลางทศวรรษ 2000

MongoDB คุณสมบัติ

  1. ฐานข้อมูลแต่ละฐานประกอบด้วยชุดข้อมูล ซึ่งแต่ละชุดข้อมูลประกอบด้วยเอกสาร เอกสารแต่ละฉบับอาจแตกต่างกันไป โดยมีจำนวนฟิลด์ไม่เท่ากัน ขนาดและเนื้อหาของแต่ละเอกสารก็อาจแตกต่างกันได้เช่นกัน
  2. โครงสร้างเอกสารสอดคล้องกับวิธีที่นักพัฒนาสร้างคลาสและอ็อบเจ็กต์ในภาษาการเขียนโปรแกรมของตนมากขึ้น นักพัฒนามักจะบอกว่าคลาสของพวกเขาไม่ใช่แถวและคอลัมน์ แต่มีโครงสร้างที่ชัดเจนพร้อมคู่คีย์-ค่า
  3. แถว (หรือเอกสารตามที่เรียกเข้ามา) MongoDBไม่จำเป็นต้องกำหนดโครงสร้างข้อมูล (schema) ไว้ล่วงหน้า สามารถสร้างฟิลด์ขึ้นมาได้ทันที
  4. โมเดลข้อมูลที่มีอยู่ภายใน MongoDB ช่วยให้คุณสามารถแสดงความสัมพันธ์แบบลำดับชั้น จัดเก็บอาร์เรย์ และจัดเก็บโครงสร้างที่ซับซ้อนอื่นๆ ได้ง่ายขึ้น
  5. scalability - MongoDB สภาพแวดล้อมเหล่านี้สามารถปรับขนาดได้อย่างมาก บริษัทต่างๆ ทั่วโลกได้กำหนดคลัสเตอร์ โดยบางแห่งมีโหนดมากกว่า 100 โหนด และมีเอกสารนับล้านฉบับอยู่ในฐานข้อมูล

MongoDB ตัวอย่าง

ตัวอย่างด้านล่างแสดงวิธีการสร้างโมเดลเอกสาร MongoDB.

  1. ฟิลด์ _id ถูกเพิ่มโดย MongoDB เพื่อระบุเอกสารในคอลเลกชันโดยไม่ซ้ำกัน
  2. สิ่งที่สังเกตได้คือ ข้อมูลคำสั่งซื้อ (OrderID, Product และ Quantity) ซึ่งโดยปกติในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) จะถูกจัดเก็บไว้ในตารางแยกต่างหากนั้น แท้จริงแล้วถูกจัดเก็บเป็นเอกสารฝังตัวอยู่ในคอลเลกชันเอง MongoDBนี่คือหนึ่งในความแตกต่างที่สำคัญในวิธีการสร้างแบบจำลองข้อมูล MongoDB.

MongoDB ตัวอย่าง

ส่วนประกอบสำคัญของ MongoDB Archiเทคเจอร์

ด้านล่างนี้เป็นคำศัพท์ทั่วไปบางส่วนที่ใช้ใน MongoDB:

  1. _NS – นี่เป็นฟิลด์ที่จำเป็นในทุก ๆ MongoDB เอกสาร. ช่อง _id แสดงถึงค่าที่ไม่ซ้ำใน MongoDB เอกสาร. ช่อง _id เหมือนกับคีย์หลักของเอกสาร หากคุณสร้างเอกสารใหม่โดยไม่มีฟิลด์ _id MongoDB ระบบจะสร้างฟิลด์นั้นโดยอัตโนมัติ ตัวอย่างเช่น หากเราดูตัวอย่างตารางลูกค้าด้านบน MongoDB จะเพิ่มรหัสเฉพาะ 24 หลักให้กับเอกสารแต่ละฉบับในชุดเอกสารนั้น
_รหัส รหัสลูกค้า ชื่อลูกค้า รหัสคำสั่งซื้อ
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 เทรเวอร์สมิ ธ 222
563479cc9a8a4246bd57d784 33 นิโคล 333
  1. ชุด – นี่คือกลุ่มping of MongoDB เอกสาร คอลเลกชันเทียบเท่ากับตารางที่สร้างขึ้นในระบบจัดการฐานข้อมูลเชิงสัมพันธ์อื่นๆ เช่น Oracle หรือ MS SQL คอลเลกชันจะอยู่ภายในฐานข้อมูลเดียว ดังที่ได้กล่าวไว้ในบทนำ คอลเลกชันไม่ได้บังคับใช้โครงสร้างใดๆ
  2. เคอร์เซอร์ – นี่คือตัวชี้ไปยังชุดผลลัพธ์ของแบบสอบถาม ลูกค้าสามารถวนซ้ำผ่านเคอร์เซอร์เพื่อดึงผลลัพธ์
  3. ฐานข้อมูล – นี่คือคอนเทนเนอร์สำหรับรวบรวมข้อมูล เหมือนกับในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่เป็นคอนเทนเนอร์สำหรับตาราง แต่ละฐานข้อมูลจะมีชุดไฟล์ของตัวเองบนระบบไฟล์ MongoDB เซิร์ฟเวอร์สามารถจัดเก็บฐานข้อมูลได้หลายฐานข้อมูล
  4. เอกสาร – บันทึกใน MongoDB โดยพื้นฐานแล้วคอลเลกชันเรียกว่าเอกสาร เอกสารนั้นจะประกอบด้วยชื่อฟิลด์และค่าต่างๆ
  5. สนาม – คู่ชื่อ-ค่าในเอกสาร เอกสารมีฟิลด์ตั้งแต่ศูนย์ฟิลด์ขึ้นไป ฟิลด์เปรียบเสมือนคอลัมน์ในฐานข้อมูลเชิงสัมพันธ์ แผนภาพต่อไปนี้แสดงตัวอย่างฟิลด์ที่มีคู่คีย์-ค่า ดังนั้นในตัวอย่างด้านล่าง CustomerID และ 11 คือหนึ่งในคู่คีย์-ค่าที่กำหนดไว้ในเอกสาร

ส่วนประกอบสำคัญของ MongoDB Archiเทคเจอร์

  1. JSON - สิ่งนี้เรียกว่า Javaต้นฉบับ รูปแบบออบเจ็กต์ เป็นรูปแบบข้อความธรรมดาที่มนุษย์สามารถอ่านได้เพื่อใช้แสดงข้อมูลที่มีโครงสร้าง ปัจจุบัน JSON ได้รับการสนับสนุนในภาษาการเขียนโปรแกรมหลายภาษา

ข้อมูลสั้นๆ เกี่ยวกับความแตกต่างที่สำคัญระหว่างฟิลด์ _id และฟิลด์การรวบรวมปกติ ช่อง _id ใช้เพื่อระบุเอกสารในคอลเลกชันโดยไม่ซ้ำกัน และจะถูกเพิ่มโดยอัตโนมัติโดย MongoDB เมื่อมีการสร้างคอลเลกชัน

ทำไมต้องใช้ MongoDB?

ต่อไปนี้คือเหตุผลบางประการว่าทำไมจึงควรเริ่มใช้ MongoDB:

  1. เน้นเอกสาร - ตั้งแต่ MongoDB คือ NoSQL ฐานข้อมูลประเภทแทนที่จะมีข้อมูลในรูปแบบประเภทเชิงสัมพันธ์จะเก็บข้อมูลไว้ในเอกสาร สิ่งนี้ทำให้ MongoDB มีความยืดหยุ่นและปรับตัวได้ดีมาก เพื่อให้เข้ากับสถานการณ์และความต้องการในโลกธุรกิจจริง
  2. แบบสอบถามเฉพาะกิจ - MongoDB รองรับการค้นหาตามฟิลด์ การค้นหาช่วง และการค้นหานิพจน์ทั่วไป สามารถทำการสอบถามเพื่อส่งคืนฟิลด์เฉพาะภายในเอกสารได้
  3. การจัดทำดัชนี – สามารถสร้างดัชนีเพื่อปรับปรุงประสิทธิภาพการค้นหาภายในได้ MongoDB- สนามใดก็ได้ใน MongoDB สามารถจัดทำดัชนีเอกสารได้
  4. การทำซ้ำ - MongoDB สามารถให้ความพร้อมใช้งานสูงด้วยชุดจำลอง (replica sets) ชุดจำลองประกอบด้วยอุปกรณ์สองตัวขึ้นไป MongoDB ในแต่ละอินสแตนซ์ของชุดจำลอง (replica set) สมาชิกแต่ละตัวสามารถทำหน้าที่เป็นตัวจำลองหลักหรือตัวจำลองรองได้ตลอดเวลา ตัวจำลองหลักคือเซิร์ฟเวอร์หลักที่โต้ตอบกับไคลเอ็นต์และดำเนินการอ่าน/เขียนข้อมูลทั้งหมด ตัวจำลองรองจะเก็บสำเนาข้อมูลของตัวจำลองหลักโดยใช้การจำลองแบบในตัว เมื่อตัวจำลองหลักล้มเหลว ชุดจำลองจะสลับไปยังตัวจำลองรองโดยอัตโนมัติ และจากนั้นตัวจำลองรองจะกลายเป็นเซิร์ฟเวอร์หลัก
  5. โหลดบาลานซ์ - MongoDB ใช้แนวคิดการแบ่งส่วนเพื่อปรับขนาดในแนวนอนโดยการแบ่งข้อมูลออกเป็นหลาย ๆ ส่วน MongoDB ตัวอย่าง. MongoDB สามารถทำงานบนเซิร์ฟเวอร์หลายเครื่อง ปรับสมดุลโหลดและ/หรือทำซ้ำข้อมูล เพื่อให้ระบบยังคงทำงานอยู่ในกรณีที่ฮาร์ดแวร์ขัดข้อง

การสร้างแบบจำลองข้อมูลใน MongoDB

ดังที่เราได้เห็นจากส่วนบทนำ ข้อมูลใน MongoDB มีสคีมาที่ยืดหยุ่น ไม่เหมือนใน SQL ฐานข้อมูลที่คุณต้องมีการประกาศสคีมาของตารางก่อนที่จะแทรกข้อมูล MongoDBคอลเลกชันของไม่ได้บังคับใช้โครงสร้างเอกสาร ความยืดหยุ่นแบบนี้คือสิ่งที่ทำให้ MongoDB มีพลังมาก

เมื่อสร้างแบบจำลองข้อมูลใน MongoDBโปรดคำนึงถึงสิ่งต่อไปนี้:

  1. แอปพลิเคชันนี้ต้องการอะไรบ้าง – พิจารณาความต้องการทางธุรกิจของแอปพลิเคชัน และดูว่าข้อมูลประเภทใดและอะไรบ้างที่แอปพลิเคชันต้องการ จากนั้นจึงกำหนดโครงสร้างของเอกสารให้เหมาะสม
  2. รูปแบบการดึงข้อมูลคืออะไร – หากคุณคาดการณ์ว่าจะมีการใช้งานคิวรีจำนวนมาก ควรพิจารณาใช้ดัชนีในแบบจำลองข้อมูลของคุณเพื่อเพิ่มประสิทธิภาพในการค้นหาข้อมูล
  3. มีการเพิ่ม แก้ไข และลบข้อมูลในฐานข้อมูลบ่อยครั้งหรือไม่? พิจารณาการใช้ดัชนีอีกครั้ง หรือหากจำเป็น ให้รวมการแบ่งส่วนข้อมูล (sharding) เข้าไว้ในการออกแบบโมเดลข้อมูลของคุณ เพื่อปรับปรุงประสิทธิภาพโดยรวม MongoDB สิ่งแวดล้อม

ความแตกต่างระหว่าง MongoDB & RDBMS

ด้านล่างนี้คือความแตกต่างที่สำคัญบางประการระหว่าง MongoDB และระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS):

อาร์ดีบีเอ็มเอส MongoDB ความแตกต่าง
ตาราง ชุด In อาร์ดีบีเอ็มเอสตารางประกอบด้วยคอลัมน์และแถวซึ่งใช้ในการจัดเก็บข้อมูล ในขณะที่ใน MongoDB โครงสร้างแบบเดียวกันนี้เรียกว่าคอลเลกชัน คอลเลกชันประกอบด้วยเอกสาร ซึ่งเอกสารเหล่านั้นประกอบด้วยฟิลด์ และฟิลด์เหล่านั้นก็เป็นคู่คีย์-ค่า
แถว เอกสาร ใน RDBMS แถวแสดงรายการข้อมูลที่มีโครงสร้างโดยนัยรายการเดียวในตาราง ใน MongoDBข้อมูลจะถูกจัดเก็บไว้ในเอกสาร
คอลัมน์ สนาม ใน RDBMS คอลัมน์แสดงถึงชุดของค่าข้อมูล เหล่านี้เข้า MongoDB เรียกกันว่าทุ่งนา
ร่วม เอกสารที่ฝัง ในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ข้อมูลบางครั้งอาจกระจายอยู่ตามตารางต่างๆ และเพื่อให้แสดงข้อมูลทั้งหมดได้อย่างครบถ้วน บางครั้งจึงจำเป็นต้องมีการเชื่อมต่อตาราง (join) เพื่อดึงข้อมูลทั้งหมดมาแสดง MongoDBโดยปกติแล้ว ข้อมูลจะถูกจัดเก็บไว้ในชุดข้อมูลเดียว แต่แยกออกจากกันโดยใช้เอกสารฝังตัว ดังนั้นจึงไม่มีแนวคิดเรื่องการเชื่อมต่อ (joins) ในกรณีนี้ MongoDB.

นอกเหนือจากความแตกต่างในด้านคำศัพท์แล้ว ยังมีความแตกต่างอื่นๆ อีกเล็กน้อยดังแสดงด้านล่าง:

  1. ฐานข้อมูลเชิงสัมพันธ์เป็นที่รู้จักในการบังคับใช้ความสมบูรณ์ของข้อมูล นี่ไม่ใช่ข้อกำหนดที่ชัดเจนใน MongoDB.
  2. RDBMS ต้องการให้ข้อมูลนั้นเป็น ปกติ ประการแรก เพื่อป้องกันข้อมูลที่ไม่มีเจ้าของและข้อมูลซ้ำซ้อน การทำให้ข้อมูลเป็นมาตรฐานนั้นจำเป็นต้องใช้ตารางเพิ่มเติม ซึ่งจะส่งผลให้มีการเชื่อมตารางมากขึ้น จึงต้องใช้คีย์และดัชนีมากขึ้น เมื่อฐานข้อมูลเริ่มมีขนาดใหญ่ขึ้น ประสิทธิภาพอาจเริ่มเป็นปัญหา อีกครั้ง นี่ไม่ใช่ข้อกำหนดที่ระบุไว้อย่างชัดเจนใน MongoDB. MongoDB มีความยืดหยุ่นและไม่จำเป็นต้องทำให้ข้อมูลเป็นมาตรฐานก่อน

คำถามที่พบบ่อย

MongoDB Atlas สามารถจัดเก็บข้อมูลที่ไม่เป็นระเบียบและกึ่งเป็นระเบียบได้ในปริมาณมาก ทำให้มีประโยชน์สำหรับกระบวนการ AI และ ML เอกสารที่ยืดหยุ่นของ Atlas สามารถจัดเก็บข้อมูลการฝึกอบรม ชุดคุณลักษณะ และเมตาเดต้าของโมเดลได้ และ Atlas ยังเพิ่มฟังก์ชันการค้นหาเวกเตอร์สำหรับแอปพลิเคชัน AI อีกด้วย

ใช่. MongoDB Atlas Vector Search ช่วยให้คุณจัดเก็บและค้นหาเวกเตอร์ฝังตัว (vector embeddings) ควบคู่ไปกับเอกสารของคุณ ซึ่งสนับสนุนการค้นหาเชิงความหมาย การแนะนำ และการสร้างผลลัพธ์ที่เพิ่มประสิทธิภาพการค้นหาสำหรับแอปพลิเคชัน AI โดยไม่จำเป็นต้องมีฐานข้อมูลเวกเตอร์แยกต่างหาก

MongoDB Community Edition เป็นซอฟต์แวร์ฟรีและโอเพนซอร์ส MongoDB นอกจากนี้ ยังมี Atlas ซึ่งเป็นบริการคลาวด์แบบจัดการ โดยมีทั้งแบบฟรีและแบบ Enterprise Edition ที่มีระบบรักษาความปลอดภัยและการสนับสนุนขั้นสูงโดยมีค่าใช้จ่ายเพิ่มเติม

องค์กรขนาดใหญ่หลายแห่งใช้ MongoDB เหมาะสำหรับการจัดเก็บข้อมูลปริมาณมากและมีความยืดหยุ่นสูง รวมถึงบริษัทในอุตสาหกรรมอีคอมเมิร์ซ เกม IoT และการจัดการเนื้อหา ความสามารถในการขยายขนาดผ่านการแบ่งส่วนและการทำสำเนาเหมาะสำหรับแอปพลิเคชันที่มีเอกสารหลายล้านฉบับ

สรุปโพสต์นี้ด้วย: