[MongoDB ] Let’s learn about MongoDB

Visarut Junsone
Lazy-Dev
Published in
2 min readJun 8, 2019

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

MongoDB คืออะไร? (What is MongoDB ?)

ถ้าคุณผู้อ่านไปค้นหาตามที่ต่างๆ ก็จะได้คำตอบว่า

“MongoDB is an open-source document database and leading NoSQL database.” (Ref. https://www.tutorialspoint.com/mongodb/)

แปลเป็นไทยว่า

“MongoDB คือ ซอฟต์แวร์ฐานข้อมูลแบบเอกสารที่เป็น open-source และใช้ฐานข้อมูลแบบ NoSQL”

แปลเป็นภาษาคนว่า

“MongoDB คือ ซอฟต์แวร์ที่ใครก็ใช้ได้ที่เป็น ซอฟต์แวร์ฐานข้อมูลแบบเอกสาร และใช้ฐานข้อมูลแบบ NoSQL”

เข้าใจแบบไหนมากกว่ากันก็แล้วแต่ละกันนะครับผู้อ่าน ฮ่าๆๆๆๆๆๆๆ

Database ของ MongoDB

database ของ mongoDB เนี่ยจะเป็นตัวเก็บ สิ่งที่เรียกว่า collections ซึ่งจะอธิบายต่อไป และในแต่ละ database ก็จะมี set ของไฟล์เป็นของตัวเอง (มีได้หลายไฟล์) และสุดท้าย server mongoDB เนี่ยสามารถมีได้หลาย database

ใช้คำสั่ง show dbs เพื่อ database ทั้งหมดที่มี และใช้ คำสั่ง use <ชื่อ> เพื่อเข้าไปใน database นั้นๆ ในกรณีที่ต้องการสร้างให้ใช้คำสั่ง use <ชื่อ> แล้วทำการ insert data เข้า collection mongodb จะสร้าง database ให้

Collection ของ MongoDB

collection ของ MongoDB เนี่ยเทียบได้กับ table ใน relational database หรือพวก SQL ทั่วๆไปนั้นละ เรียกได้ว่ามันคือ กลุ่มของ MongoDB documents เลยละ และอีกหนึ่งทริกคือเราสามารถสร้าง Collection ได้จากการ insert ค่า document ได้เลย แล้วมันจะทำการสร้างให้ทันที โดยไม่ต้องใช้คำสั่ง db.createCollection(name, options)

จะเห็นว่าต้องแรกเรามีแค่ mycol collection แต่เมื่อเรา insert ด้วย db.COLLECTION_NAME.insert(document) ซึ่ง COLLECTION_NAME = lazydev collection lazydev จึงถูกสร้างขึ้นมา

Document ของ MongoDB

เป็น set ของ key และ value และ เป็น dynamic schema หมายความว่ายังไง หมายความว่า Document ภายใน collection นั้นๆ เนี่ย มันไม่จำเป็นที่จะต้องมี field หรือ โครงสร้าง เดียวกันเลย มันจะเป็นอะไรก็ได้เลย

จากรูป คือ document ที่อยู่ใน collection ชื่อ mycol

จบกันไปแล้วกับการทำความรู้จัก mongodb แบบ คร่าวๆ ผิวๆ ต่อไปจะเอา golang มาต่อเพื่อยิงเข้า mongo ที่เราสร้างกันนะ แต่รอดู blog ถัดไปละกัน สวัสดี.-

--

--

Visarut Junsone
Lazy-Dev

I’m Full-Stack Developer. ReactJS Golang C# Javascript C++ PHP and learning a lot more. Not lazy as it name. “Lazy-Dev”