การรวมใน 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}}

]);
คำสั่งไปป์ไลน์
- คำสั่ง โครงสร้าง : คำสั่งโครงสร้างช่วยจัดระเบียบเอกสารและทำให้เหมาะสำหรับการดำเนินการจัดการข้อมูล มีคำสั่งโครงสร้างที่สำคัญสองคำสั่ง ซึ่งใช้บ่อยมาก
- การ จับคู่ : นี่คือขั้นตอนการกรอง ขั้นตอนนี้ตัดเอกสารที่ไม่สนใจออก คำสั่งนี้มีความคล้ายคลึงกับ ฟังก์ชัน 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 ซึ่งช่วยให้ทำงานด้านข้อมูลได้ คำสั่งที่สำคัญที่สุดบางคำสั่งได้อธิบายไว้ด้านล่าง:
- การ รวม ($sum) : ส่งกลับการเพิ่มค่าทั้งหมดจากเอกสาร
- สูงสุด ($max) : ส่งออกค่าสูงสุดของตัวแปรเฉพาะจากเอกสารทั้งหมด
- ค่าต่ำสุด ($min) : ส่งคืนค่าต่ำสุดของตัวแปร
- ค่าเฉลี่ย ($avg) : คำนวณค่าเฉลี่ยของค่าจากแต่ละเอกสาร
- Push ($push) : ผนวกค่าเข้ากับอาร์เรย์
- First ($first) : ส่งคืนเอกสารแรกจากคอลเลกชัน
- Last ($last) : ส่งกลับเอกสารล่าสุดจากคอลเลกชัน
- การเพิ่มไปยังชุด ($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 โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
