บทช่วยสอน MongoDB สำหรับผู้เริ่มต้น: เรียนรู้ MongoDB ในขั้นตอนง่าย ๆ

เผยแพร่แล้ว: 2022-08-31

MongoDB เป็นฐานข้อมูลเอกสารและฐานข้อมูล 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 เป็นที่รู้จักในด้านความสามารถในการปรับขนาด เหมาะอย่างยิ่งสำหรับไปป์ไลน์การพัฒนาใดๆ