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

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

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

MongoDB คุณสมบัติ

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

MongoDB ตัวอย่าง

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

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

MongoDB ตัวอย่าง

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ด้านล่างนี้คือความแตกต่างที่สำคัญบางประการระหว่าง MongoDB และ RDBMS

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

นอกเหนือจากข้อแตกต่างของข้อกำหนดแล้ว ยังมีข้อแตกต่างอื่นๆ บางประการแสดงอยู่ด้านล่างนี้

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