บทช่วยสอน MongoDB สำหรับผู้เริ่มต้น: เรียนรู้ MongoDB ในขั้นตอนง่าย ๆ
เผยแพร่แล้ว: 2022-08-31MongoDB เป็นฐานข้อมูลเอกสารและฐานข้อมูล NoSQL ชั้นนำที่เป็นโอเพ่นซอร์ส มันถูกเขียนด้วย C++ และเป็นฐานข้อมูล NoSQL เชิงเอกสารที่ใช้สำหรับการจัดเก็บข้อมูลปริมาณมาก การจัดการและการส่งมอบเนื้อหา โครงสร้างพื้นฐานบนมือถือและโซเชียล การจัดการข้อมูลผู้ใช้ ฯลฯ
ประกอบด้วยแบบจำลองข้อมูลซึ่งคุณสามารถแสดงความสัมพันธ์แบบลำดับชั้นได้ โดยอาศัยเอกสารที่คล้ายกับ JSON ที่มีสคีมาที่เป็นตัวเลือก และไม่ใช้แถวและตารางที่ใช้ในฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม เอกสารที่มีคู่คีย์-ค่าเป็นหน่วยพื้นฐานของข้อมูลใน MongoDB
MongoDB เก็บข้อมูลในรูปแบบ JSON ความต้องการที่สูงนั้นขึ้นอยู่กับดัชนีของแอตทริบิวต์ การจำลองแบบและความพร้อมใช้งานสูง การแบ่งส่วนอัตโนมัติ การสืบค้นที่หลากหลาย การอัปเดตในสถานที่อย่างรวดเร็ว และการสนับสนุนชุมชนที่หลากหลาย มาดำดิ่งลงไปในบทช่วยสอนแบบสอบถาม mongodb
คุณสมบัติ MongoDB
การใช้งานฐานข้อมูลเชิงข้อมูลนี้ขึ้นอยู่กับคุณสมบัติที่สำคัญบางอย่างของ Mongo DB:-
- แต่ละฐานข้อมูลประกอบด้วยคอลเล็กชันที่มีเอกสารเพิ่มเติม เอกสารเหล่านี้ ขนาด และเนื้อหาอาจแตกต่างกันไปตามจำนวนฟิลด์ที่แตกต่างกัน
- โครงสร้างเอกสารขึ้นอยู่กับวิธีที่นักพัฒนาสร้างคลาสและอ็อบเจ็กต์ในโปรแกรมของตน
- แถวไม่จำเป็นต้องมีสคีมาที่กำหนดไว้ล่วงหน้า เนื่องจากคุณสามารถสร้างฟิลด์ได้ทุกที่ทุกเวลา
- ด้วยโมเดลข้อมูล MongoDB คุณสามารถแสดงความสัมพันธ์แบบลำดับชั้นสำหรับการจัดเก็บอาร์เรย์และโครงสร้างที่ซับซ้อนอื่นๆ
- สภาพแวดล้อม MongoDB สามารถปรับขนาดได้มาก
- ไม่จำเป็นต้องแปลงหรือแมปออบเจ็กต์แอปพลิเคชันกับออบเจ็กต์ฐานข้อมูล
- หน่วยความจำภายในจัดเก็บชุดการทำงานแบบมีหน้าต่างที่ช่วยให้เข้าถึงข้อมูลได้ง่ายขึ้น
- โครงสร้างของวัตถุชิ้นเดียวมีความชัดเจน
- ไม่มีการรวมที่ซับซ้อน
- ความสามารถในการสืบค้นข้อมูลเชิงลึกรองรับการสืบค้นแบบไดนามิกบนเอกสาร
นอกจากนี้ ตรวจสอบหลักสูตรวิทยาศาสตร์ข้อมูลของเราเพื่อเพิ่มทักษะให้กับตัวคุณเอง
สิ่งที่คุณต้องรู้เกี่ยวกับ MongoDB และ RDBMS
MongoDB เป็นฐานข้อมูลข้ามแพลตฟอร์มที่เน้นเอกสารซึ่งให้ประสิทธิภาพสูง ความสามารถในการขยายที่มีประสิทธิภาพ และความพร้อมใช้งานสูง มันทำงานตามเอกสารและคอลเลกชัน ทุกฐานข้อมูลใน MongoDB มีชุดไฟล์ที่แตกต่างกัน และในอุดมคติแล้ว เซิร์ฟเวอร์ MongoDB เดียวจะมีฐานข้อมูลจำนวนมาก
ในทางกลับกัน Collection คือกลุ่มของเอกสาร MongoDB ที่เทียบเท่ากับตาราง RDBMS มีอยู่ในฐานข้อมูลเดียวและไม่บังคับใช้สคีมา เอกสารภายในคอลเลกชันสามารถมีฟิลด์ต่างๆ และเอกสารทั้งหมดภายในคอลเลกชันมีวัตถุประสงค์ที่เกี่ยวข้องหรือคล้ายกัน ชุดของคู่คีย์-ค่าเรียกว่าเอกสารที่มีสคีมาแบบไดนามิก โดยที่เอกสารในคอลเล็กชันเดียวกันไม่จำเป็นต้องมีชุดของโครงสร้างหรือฟิลด์เดียวกัน
คุณจะพบความสัมพันธ์ของคำศัพท์ RDBMS กับ MongoDB ในตารางต่อไปนี้
RDBMS | MongoDB |
ฐานข้อมูล | ฐานข้อมูล |
ทูเปิล | เอกสาร |
โต๊ะ | ของสะสม |
เข้าร่วมตาราง | เอกสารฝังตัว |
คอลัมน์ | สนาม |
คีย์หลัก | คีย์หลัก (MongoDB เสนอคีย์เริ่มต้น _id) |
เซิร์ฟเวอร์ฐานข้อมูลและไคลเอนต์ | |
mysqld/Oracle | mongod |
mysql/sqlplus | มองโก |
ความแตกต่างระหว่างฐานข้อมูล MongoDB และ SQL
MongoDB มีความยืดหยุ่นมากกว่า SQL และมีความพร้อมของข้อมูลที่ดีกว่า นอกจากนี้ยังพกพาและขยายได้ ฐานข้อมูล SQL เป็นที่รู้จักในด้านความทนทานและความสม่ำเสมอ ดังนั้น โซลูชันฐานข้อมูลที่ดีที่สุดจึงขึ้นอยู่กับประเภทของโครงการที่เกี่ยวข้อง
MongoDB ดีกว่าสำหรับไปป์ไลน์การพัฒนา ในขณะที่ฐานข้อมูล SQL นั้นยอดเยี่ยมสำหรับธุรกรรมข้อมูลองค์กรที่เชื่อถือได้ MongoDB นั้นยอดเยี่ยมสำหรับการประมวลผลและทำงานกับข้อมูลที่ไม่มีโครงสร้าง ฐานข้อมูล NoSQL นี้เป็นหนึ่งในทางเลือกที่ดีที่สุดสำหรับการป้อนไปป์ไลน์ข้อมูลและสำหรับแอปพลิเคชัน เช่น การวิเคราะห์แบบเรียลไทม์
MongoDB เหมาะอย่างยิ่งสำหรับการทำงานกับอุปกรณ์ IoT และแอปพลิเคชันมือถือ/เว็บ กลายเป็นตัวเลือกยอดนิยมสำหรับนักพัฒนาทั่วโลกอย่างรวดเร็ว เนื่องจากมีความยืดหยุ่นและความสามารถในการขยายขนาดได้อย่างราบรื่น
ในขณะที่ฐานข้อมูล SQL นั้นยอดเยี่ยมสำหรับการทำงานกับข้อมูลที่มีโครงสร้าง Data Science และสำหรับงานขององค์กรขั้นสูง MongoDB ตอบสนองความต้องการของนักพัฒนาและธุรกิจสมัยใหม่ผ่านการพัฒนาซอฟต์แวร์หรือบริการออนไลน์อย่างมีประสิทธิภาพ
ตัวอย่างวิธีการใช้ MongoDB
การจัดเก็บโครงสร้างข้อมูลที่ซ้อนกัน
ความสามารถในการซ้อนอ็อบเจ็กต์ภายในเอกสารเป็นหนึ่งในคุณสมบัติที่ยอดเยี่ยมที่สุดของ MongoDB ในการฝังข้อมูลในเอกสาร นักพัฒนาจะจัดโครงสร้างข้อมูลใน MongoDB แทนที่จะแยกออกเป็นคอลเลกชันต่างๆ
นี่คือตัวอย่าง:-
{_id: ObjectId("5effaa5662679b5af2c58829"),
อีเมล: “[email protected]”,
ชื่อ: {ให้: “ลิลลี่”, ครอบครัว: “โมนา”},
อายุ: 31,
ที่อยู่: [{ป้ายกำกับ: “บ้าน”,
ถนน: “22 1b ถนนเบเกอร์”,
เมือง: “ลอนดอน”,
รัฐ: “ENG”,
zip: “NW1 6XE”,
ประเทศ: “สหราชอาณาจักร”},
{ป้ายกำกับ: "แม่",
ถนน: “555 ปาร์ค สตรีท”,
เมือง: “เลคทาวน์”,
จังหวัด: “ออนแทรีโอ”,
ประเทศ: “CA”}]
}
ฟิลด์ชื่อคืออ็อบเจ็กต์ที่ซ้อนกันซึ่งให้และส่วนประกอบชื่อสกุลในฟิลด์ที่อยู่ซึ่งมีการจัดเก็บที่อยู่หลายรายการไว้ในอาร์เรย์เดียว ที่อยู่แต่ละแห่งสามารถมีฟิลด์ต่างๆ ได้ ทำให้ง่ายต่อการจัดเก็บข้อมูลประเภทอื่น
การใช้ MongoDB Shell
เชลล์ MongoDB ส่วนใหญ่ใช้สำหรับการนำทาง จัดการ และตรวจสอบข้อมูลเอกสาร เมื่อ MongoDB ทำงานบนเครื่องโลคัล การเปิดใช้งานเชลล์จะเชื่อมต่อกับ MongoDB ที่ localhost บนพอร์ตมาตรฐาน ตรวจสอบให้แน่ใจว่าได้เพิ่มสตริงการเชื่อมต่อหลังคำสั่ง mongo หากคุณต้องการเชื่อมต่อกับคลัสเตอร์ MongoDB Atlas หรืออินสแตนซ์ระยะไกลอื่นๆ
คุณจะพบตัวอย่างเชลล์ด่วนด้านล่าง:-
รายการคอลเลกชัน
> ใช้ my_database;
> แสดงคอลเลกชัน;
ผู้ใช้
โพสต์
>
แสดงรายการฐานข้อมูล
> แสดงฐานข้อมูล;
ผู้ดูแลระบบ 0.000GB
กำหนดค่า 0.000GB
ท้องถิ่น 0.000GB
my_database 0.004GB
>
สำรวจหลักสูตรวิทยาศาสตร์ข้อมูลยอดนิยมของเรา
Executive Post Graduate Program in Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ | วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona |
หลักสูตรประกาศนียบัตรขั้นสูงด้าน Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science และ Business Analytics จาก University of Maryland | หลักสูตรวิทยาศาสตร์ข้อมูล |
ค้นหาเอกสารชุดแรกในชุดสะสม
> db.users.findOne()
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
“ชื่อ”: {ให้: “แอนนา” ครอบครัว: “สมิธ”},
“อีเมล”: “[email protected]”
“อายุ”: 36
}
>
นับเอกสารในคอลเล็กชัน
> ใช้ my_database;
> db.users.count()
20234
>
ค้นหาเอกสารตาม ID
> db.users.findOne({_id: ObjectId(“5ce45d7606444f199acfba1e”)})
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
“ชื่อ”: {ให้: “แอนนา” ครอบครัว: “สมิธ”},
“อีเมล”: “[email protected]”,
“อายุ”: 36
}
>
การสืบค้น MongoDB Collections
ไวยากรณ์เดียวกันใน MongoDB Query Language (MQL) ใช้ในเอกสารที่สามารถใช้ในการสืบค้นขั้นสูง คุณจะพบตัวอย่างการสืบค้น MongoDB ด้านล่าง:
ค้นหาผลลัพธ์จำนวนจำกัด
> db.users.find().limit(10)
…
>
ค้นหาผู้ใช้ตามนามสกุล
> db.users.find({“name.family”: “Smith”}).count()
1
>
โปรดทราบว่าเราใส่ “name.family” ในเครื่องหมายคำพูด เพราะมีจุดตรงกลาง
เอกสารแบบสอบถามตามช่วงตัวเลข
// โพสต์ทั้งหมดที่มีช่อง "ชอบ" ที่มีค่าตัวเลขมากกว่าหนึ่ง:
> db.post.find({ชอบ: {$gt: 1}})
// โพสต์ทั้งหมดมี 0 ไลค์
> db.post.find({ไลค์: 0})
// ทุกโพสต์ที่มีไลค์ไม่ครบ 1 ไลค์
> db.post.find({ชอบ: {$ne: 1}})
จัดเรียงผลลัพธ์ตามเขตข้อมูล
// เรียงตามอายุ เรียงลำดับจากน้อยไปมาก (ค่าที่น้อยที่สุดก่อน)
> db.user.find().sort({อายุ: 1})
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
“ชื่อ”: {ระบุ: “อเล็กซ์” ครอบครัว: “สมิธ”},
“อีเมล”: “[email protected]”,
“อายุ”: 27
}
{
_id: ObjectId(“5effaa5662679b5af2c58829”),
อีเมล: “[email protected]”,
ชื่อ: {ให้: “เจสซี่”, ครอบครัว: “เสี่ยว”},
อายุ: 31
}
>
// เรียงตามอายุ เรียงลำดับจากมากไปน้อย (ค่าที่มากที่สุดก่อน)
> db.user.find().sort({อายุ: -1})
{
_id: ObjectId(“5effaa5662679b5af2c58829”),
อีเมล: “[email protected]”,
ชื่อ: {ให้: “ลิลลี่”, ครอบครัว: “โมนา”},
อายุ: 31
}
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
“ชื่อ”: {ให้: “แอนนา” ครอบครัว: “สมิธ”},
“อีเมล”: “[email protected]”,
“อายุ”: 36
}
>
ทักษะด้านวิทยาศาสตร์ข้อมูลอันดับต้นๆ ที่ควรเรียนรู้ในปี 2022
เอสแอล. ไม่ | ทักษะด้านวิทยาศาสตร์ข้อมูลอันดับต้นๆ ที่ควรเรียนรู้ในปี 2022 | |
1 | หลักสูตรการวิเคราะห์ข้อมูล | หลักสูตรสถิติอนุมาน |
2 | โปรแกรมทดสอบสมมติฐาน | หลักสูตร การถดถอยโลจิสติก |
3 | หลักสูตรการถดถอยเชิงเส้น | พีชคณิตเชิงเส้นสำหรับการวิเคราะห์ |
บทสรุป
ความสามารถในการปรับขนาดของ MongoDB ทำให้เป็นหนึ่งในฐานข้อมูลที่มีการใช้งานอย่างกว้างขวางที่สุด เนื่องจากมีประโยชน์มากมายในด้านการพัฒนาซอฟต์แวร์และวิทยาศาสตร์ข้อมูล การประกอบอาชีพในสาขาเหล่านี้เป็นทางเลือกที่ร่ำรวย หลักสูตร Executive PG ของ upGrad ในสาขา Data Science เป็นสถานที่ที่ดีในการเริ่มต้นอาชีพของคุณในด้านวิทยาศาสตร์ข้อมูลและสาขาอื่นๆ ที่เกี่ยวข้อง
เหตุใด MongoDB จึงปรับขนาดได้ง่าย
MongoDB ปรับขนาดได้ง่ายเพราะไม่ใช่ฐานข้อมูล SQL เนื่องจากข้อมูลภายใน MongoDB ไม่ได้เชื่อมโยงกันอย่างสัมพันธ์กัน ข้อมูลใน MongoDB ถูกจัดเก็บในรูปแบบที่มีอยู่ในตัวซึ่งช่วยให้ปรับขนาดแนวนอนได้ง่ายโดยแจกจ่ายเอกสารเหล่านี้ในหลายระบบ (โหนด)
MongoDB และระบบฐานข้อมูลเช่น MariaDB และ MySQL แตกต่างกันอย่างไร
MongoDB เป็นฐานข้อมูล NoSQL ในขณะที่ MariaDB และ MySQL เป็นฐานข้อมูล SQL นอกจากนี้ MongoDB ยังเป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ในขณะที่อีกสองฐานข้อมูลเป็นฐานข้อมูลเชิงสัมพันธ์
ทำไม MongoDB ถึงได้รับความนิยม?
MongoDB เป็นส่วนสำคัญของ MERN stack ในการพัฒนาเว็บ นอกจากนี้ยังง่ายต่อการปรับใช้และปรับขนาดโปรเจ็กต์บน MongoDB MongoDB เป็นที่รู้จักในด้านความสามารถในการปรับขนาด เหมาะอย่างยิ่งสำหรับไปป์ไลน์การพัฒนาใดๆ