การรวมใน MongoDB: ไปป์ไลน์ & ไวยากรณ์

เผยแพร่แล้ว: 2020-09-23

สารบัญ

บทนำ

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

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

การ รวมใน MongoDB มีเฟรมเวิร์กไปป์ไลน์เป็นหลัก แนวคิดพื้นฐานของไปป์ไลน์คืออินพุตถูกนำมาจากคอลเล็กชัน MongoDB และเอกสารจะถูกส่งผ่านชุดของขั้นตอนเพื่อสร้างเอาต์พุตที่รวมเป็นหนึ่งในที่สุด แนวคิดนี้คล้ายกับแนวคิดไปป์ไลน์ของ Linux มาก เช่น Bash

คุณสมบัติที่สำคัญของ MongoDB

มีหลายสาเหตุที่ระบบฐานข้อมูลนี้ใช้กันอย่างแพร่หลาย คุณสมบัติพิเศษบางประการมีการกล่าวถึงด้านล่าง:

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

อ่าน: แนวคิดและหัวข้อโครงการ MongoDB

เหตุใดการรวมใน MongoDB จึงมีประโยชน์

อาจมีบางครั้งที่การประมวลผลไฟล์ฝังตัวนับล้านอาจมีความจำเป็น อย่างไรก็ตาม การทำเช่นนี้อาจทำให้เกิดการล้นในเซิร์ฟเวอร์สแต็กและทำให้กระบวนการยุติลง ข้อจำกัดในการประมวลผลไฟล์ฝังตัวจำนวนมากทำให้กระบวนการสแกนดีขึ้นโดยการเชื่อมโยงไฟล์เข้าด้วยกัน

ดังนั้น การดำเนินการรวมจึงได้รับการออกแบบเพื่อคำนวณเอกสารในขั้นตอนต่างๆ และแสดงผลสะสมและส่งคืน เทคนิคการจับคู่ของการสร้างผลลัพธ์ได้ปฏิวัติปัญหาของไฟล์จำนวนมาก ดังนั้น กรอบงานการรวมจึงมีความจำเป็น

เฟรมเวิร์กนี้สามารถดำเนินการสืบค้นข้อมูลในไฟล์ต่างๆ ได้พร้อมกัน มีความคล้ายคลึงกับแบบสอบถามฐานข้อมูลเชิงสัมพันธ์มาก

เช็คเอาท์: คำสั่ง MongoDB ทั่วไปส่วนใหญ่

ไปป์ไลน์การรวมคืออะไร?

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

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

ดังนั้นแต่ละขั้นตอนจึงทำหน้าที่เป็นหน่วยประมวลผลที่นี่ สำหรับทุกสเตจภายใน เอาต์พุตจากสเตจก่อนหน้าจะทำหน้าที่เป็นอินพุต นอกจากนี้ยังสามารถเพิ่มตัวกรองเพิ่มเติมได้ในระยะเริ่มต้น ขั้นตอนต่างๆ มักได้รับการออกแบบด้วยไฮเปอร์พารามิเตอร์จำนวนมาก เพื่อจุดประสงค์นี้ มีปุ่มควบคุมหรือปุ่มปรับจูนบางปุ่มไว้เพื่อควบคุม การเปลี่ยนไฮเปอร์พารามิเตอร์เหล่านี้จะส่งผลต่อผลลัพธ์ของสเตจนั้น สิ่งนี้กำหนดพารามิเตอร์ของงานที่สนใจในการดำเนินการ ด้วยวิธีนี้ สเตจจะทำงานทั่วไป

อาจมีสถานการณ์ที่อาจต้องการรวมระยะประเภทที่คล้ายกันหลายครั้งในไปป์ไลน์เฉพาะ ตัวอย่างเช่น อาจมีตัวกรองอยู่ในส่วนเริ่มต้นเพื่อไม่ให้คอลเลกชันทั้งหมดผ่านไป แต่ภายหลัง หลังจากประมวลผลบางอย่าง อาจต้องใช้ตัวกรองอื่นสำหรับเกณฑ์ที่ต่างออกไป

ไวยากรณ์

มีรูปแบบเฉพาะที่สร้างแบบสอบถามแบบรวม ไวยากรณ์และรูปแบบของโค้ดแสดงอยู่ด้านล่าง

db.Collection_Name.aggregate([

{ $match: {“_id_field_”: value}}

{ กลุ่ม $: {“_id_field_”: ค่า}}

{ $sort: {“_id_field_”: value}}

]);

คำสั่งไปป์ไลน์

  • คำสั่ง โครงสร้าง : คำสั่งโครงสร้างช่วยจัดระเบียบเอกสารและทำให้เหมาะสำหรับการดำเนินการจัดการข้อมูล มีคำสั่งโครงสร้างที่สำคัญสองคำสั่ง ซึ่งใช้บ่อยมาก
  1. การ จับคู่ : นี่คือขั้นตอนการกรอง ขั้นตอนนี้ตัดเอกสารที่ไม่สนใจออก คำสั่งนี้มีความคล้ายคลึงกับ ฟังก์ชัน WHERE ของ SQL มาก

db.customers.aggregate([

{ $match: {"zip": 700068}}

]);

รหัสด้านบนส่งคืนเอกสารของลูกค้าทั้งหมดที่อาศัยอยู่ในรหัสไปรษณีย์ 700068 จาก MongoDB Collections

1. การจัดกลุ่ม : หลังจากกรองเอกสารแล้ว จำเป็นต้องมีการจัดกลุ่มเฉพาะ ซึ่งช่วยให้สามารถสร้างชุดย่อยของคอลเล็กชันทั้งหมดได้ นอกจากนี้ เอกสารยังสามารถจัดกลุ่มตามความคล้ายคลึงกัน การทำคลัสเตอร์ช่วยในการดำเนินการที่คล้ายคลึงกันร่วมกัน

db.customers.aggregate([

{ $match: {"zip": 700068}}

{

$กลุ่ม: {

_id: null,

นับ: {

ผลรวม $: 1

}

}

]);

$group เปิดใช้งานการจัดกลุ่มของเอกสารเพื่อดำเนินการแปลง คำสั่ง _id เกี่ยวข้องกับการรักษาฟิลด์ข้อมูล

2. Sort : ช่วยในการจัดเรียงเอกสารในลำดับจากน้อยไปมากหรือมากไปหาน้อยตามฟิลด์แบบสอบถามเฉพาะใดๆ

db.customers.aggregate([

{ $match: {"zip": 700068}}

{

$กลุ่ม: {

_id: null,

นับ: {

ผลรวม $: 1

}

}

{

$ เรียงลำดับ: {

{"zip": -1}

}

}

]);

การดำเนินการนี้จะจัดเรียงเอกสารตามรหัสไปรษณีย์

  • คำสั่งปฏิบัติการ : มีคำสั่งปฏิบัติการมากมายใน MongoDB Aggregation ซึ่งช่วยให้ทำงานด้านข้อมูลได้ คำสั่งที่สำคัญที่สุดบางคำสั่งได้อธิบายไว้ด้านล่าง:
  1. การ รวม ($sum) : ส่งกลับการเพิ่มค่าทั้งหมดจากเอกสาร
  2. สูงสุด ($max) : ส่งออกค่าสูงสุดของตัวแปรเฉพาะจากเอกสารทั้งหมด
  3. ค่าต่ำสุด ($min) : ส่งคืนค่าต่ำสุดของตัวแปร
  4. ค่าเฉลี่ย ($avg) : คำนวณค่าเฉลี่ยของค่าจากแต่ละเอกสาร
  5. Push ($push) : ผนวกค่าเข้ากับอาร์เรย์
  6. First ($first) : ส่งคืนเอกสารแรกจากคอลเลกชัน
  7. Last ($last) : ส่งกลับเอกสารล่าสุดจากคอลเลกชัน
  8. การเพิ่มไปยังชุด ($addToSet) : ผนวกค่าเข้ากับอาร์เรย์ของเอกสารโดยไม่ทำซ้ำ

อ่านเพิ่มเติม: ขอบเขตในอนาคตของ MongoDB

ห่อ

ในยุคของ Big Data นี้ ฐานข้อมูลที่ไม่สัมพันธ์กันมีประโยชน์มากในการจัดการชุดตัวอย่างขนาดใหญ่ ทุกวันนี้ สาขาวิชาวิทยาศาสตร์ข้อมูลและการพัฒนาคุ้นเคยกับการใช้ MongoDB เป็นอย่างดี เฟรมเวิร์กนี้ใช้ได้กับภาษายอดนิยม เช่น Java, JavaScript, Python และภาษาอื่นๆ อีกมากมาย การมีความรู้เกี่ยวกับ MongoDB และมือที่ดีพร้อมกรอบการรวมสามารถสร้างอาชีพในฝันได้

หากคุณเริ่มสนใจ MongoDB . แล้ว รวบรวม และมองหาหลักสูตรออนไลน์ ดูประกาศนียบัตร PG ของเราในด้านการพัฒนาซอฟต์แวร์เฉพาะทางในโปรแกรม Big Data ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อปภาคปฏิบัติจริง และอื่นๆ ความช่วยเหลือด้านการเรียนรู้และการจัดหางานอย่างเข้มงวดกว่า 400 ชั่วโมงกับบริษัทชั้นนำ

ในกรณีนี้ หลักสูตรนี้จะช่วยให้คุณได้รับความรู้ทั้งหมดเกี่ยวกับโครงสร้างข้อมูลและอัลกอริธึม, การเขียนโปรแกรม Java, พื้นฐานของฐานข้อมูล, HTML, CSS, JavaScript, Angular, Java, การวิเคราะห์และออกแบบเชิงวัตถุ

การสอนออนไลน์มากกว่า 250 ชั่วโมง เซสชันแบบตัวต่อตัวกับผู้เชี่ยวชาญในอุตสาหกรรม และอีกมากมายในหลักสูตรนี้ นอกจากนี้ หลักสูตรจะได้รับการดูแลโดยผู้เชี่ยวชาญเฉพาะด้านจาก upGrad และคุณจะได้รับโอกาสในการเข้าทำงานจากบริษัทไอทีชั้นนำ บริษัทด้านผลิตภัณฑ์ และสตาร์ทอัพ

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

เป็นผู้นำการปฏิวัติเทคโนโลยีที่ขับเคลื่อนด้วยข้อมูล

โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore