MEAN Stack : ตอนที่ 1
ติดตั้ง MongoDB แบบ Local
ทำไมต้อง MEAN Stack ???
MEAN Stack คืออะไร
M : MongoDB เป็นฐานข้อมูลชนิด Non-Relation ที่ได้รับความนิยมสูง
E : Express เป็น Framework ที่ใช้คู่กับ NodeJS
A : Angular เป็น Front-End Framework ที่ใช้ TypeScript (JS)
N : NodeJS เป็น Back-End ที่ใช้ภาษา JavaScript (JS) เป็นตัวขับเคลื่อน
ประการที่ 1 จะเห็นได้ว่า Stack นี้ ใช้ภาษาเดียวเป็นหลักคือ JS
ทำให้ Developer ไม่ต้องเรียนภาษาใหม่เพื่อมาเขียน Web Application ฝั่ง Back-End นั่นทำให้ผู้ประกอบการสามารถจ้าง Developer เพียงคนเดียวก็สามารถจบงานได้ งั้นเรามาเริ่มจาก M ตัวแรกกันดีกว่า … MongoDB
ก่อนอื่นหาลิ้งค์ Download MongoDB โดยไปที่
จะโผล่มาที่หน้านี้
จากนั้นมองหาคำว่า Windows x64 ซึ่ง ณ วันที่เขียนบทความนี้ตัว MongoDB ของ Windows จะเป็น Version 6.0.6
เมื่อโหลดเสร็จเรียบร้อยก็ Unzip File ออกมา จะได้ Folder ของ MongoDB เอาไปใส่ไว้ใน Project Folder ของเรา โดยในบทความนี้จะใส่ไว้ใน PATH นี้
c://nodejs/medium/mongodb
จากนั้น Create New Folder ชื่อ data วางไว้ใน Folder ที่ชื่อ medium สังเกต Path และ ชื่อ Folder ให้ดี ไม่จำเป็นต้องทำตามตัวอย่าง แต่ต้องเข้าใจ
กลุ่ม Files ข้างบนนั้นคือตัว Database ของ Mongo ที่เอาไว้ Run เป็น Database Server เราไม่สามารถใส่ข้อมูลผ่านตัว Server ได้โดยตรง แต่เราจะสั่งงานผ่าน Mongo Shell ซึ่งเป็นแบบ CLI ถ้าไม่ถนัด ท่านจะไปใช้แบบ GUI ก็ไม่ผิด จำได้ว่าแบบ GUI ชื่อ Mongo Compass ลองหาดู แต่บทความนี้จะใช้แบบ CLI ซึ่งมันเบาและที่สำคัญมันเป็น Old School Style แบบที่ผมถนัด
งั้นก็เริ่มโหลด Mongo Shell กัน
เมื่อได้ File มาก็ Unzip ใส่ไว้ใน Folder ชื่อ medium ตามรูป แต่อย่าลืมตั้งชื่อว่า Folder ใหม่ ในบทความนี้ใช้ชื่อว่า mongosh เพื่อความเข้าใจและความง่ายในภายหลัง โดย Folder นี้อยู่ใต้ Folder medium ที่มี Folder ชื่อ mongodb อยู่ก่อนหน้านี้แล้ว
สังเกตว่าผมจะ Rename ให้ชื่อ Folder และ Path ที่ผมวางไว้ไม่ได้ใช้ชื่อ Default ที่ Mongo ให้มา ผมจะตั้งชื่อง่ายๆไม่ซับซ้อนเพราะเราต้องเรียกโปรแกรมผ่าน Terminal ของวินโดว์ ถ้าใช้ของเดิมจะดีตรงมี Version กำกับ แต่ในบทความนี้อยากให้ทำเรื่องง่ายๆก่อน
มาเริ่มเรียกใช้งานกันดีกว่า การเรียกใช้งานนั้นเราจะเรียกผ่าน Terminal สำหรับคนที่ไม่ทราบว่า Terminal คืออะไร ก็ทำตามนี้
พิมพ์ cmd ตรงช่องมุมซ้ายล่าง จะมีกล่องข้อความดำๆ ต่อไปนี้เราจะเรียกมันว่า Terminal ให้พิมพ์คำสั่งใน Terminal ตามรูป โดย
ข้อ 1 จะเป็นการเรียกไป Path c://nodejs/medium/mongodb/bin
ใช้คำสั่งว่า
cd c://nodejs/medium/mongodb/bin
ข้อ 2 จะเป็นการ initiate MongoDB ต้องระวังบรรทัดนี้เพราะถ้าไม่ได้สร้าง folder /data ไว้ ก็ทำงานไม่ได้ หรือแม้แต่พิมพ์ผิดแม้แต่ตัวเดียวก็ไปขั้นตอนต่อไปไม่ได้
mongod --dbpath c://nodejs/medium/mongodb/data
จากนั้นกด Enter
ถ้าทำถูกต้องจะมีตัวอักษรยาวแบบในรูปข้างล่าง
เราจะเปิด Terminal ที่ run mongodb นี้ทิ้งไว้และเราต้องทำแบบนี้ทุกครั้งเมื่อเราจะปิดเครื่องไป ถ้าแค่ sleep (ไม่ได้ shutdown) Terminal จะยังทำงานอยู่ ณ วันที่เขียน ผมใช้ windows 10
ข้างล่างสุดของ Terminal จะมีขีดกระพริบๆ ปล่อยมันไป เรามาถูกทางแล้ว หลังจากนั้นเราต้องตรวจดูไฟล์ที่อยู่ใน Folder data ถ้าเป็นแบบรูปด้านล่างคือมาถูกต้อง
ต่อไปเราจะไปเปิด Mongo shell โดยการเรียก Terminal อีกอัน อันเดิมห้ามปิดนะ เปิดอันใหม่มาแล้วเรียก path c://nodejs/medium/mongosh
cd c://nodejs/medium/mongosh
สังเกตดีๆว่ารอบนี้เรียกที่ Folder mongosh ไม่ใช่ mongodb อย่าหลง Folder
เรียก Path MongoDB Server ใช้บรรทัดนี้
c://nodejs/medium/mongodb/bin
เรียก Path MongoDB Shell ใช้บรรทัดนี้
c://nodejs/medium/mongosh/bin
ระวังสับสน !!!
จากนั้นก็เปิด Shell ด้วยคำสั่ง mongosh
mongosh
ถ้าทำถูกต้องจะมีคำว่า test > ค้างอยู่ใน terminal อันล่าสุดที่เราเปิดมาตามรูป
และได้โปรดอย่าลืมว่ามาถึงตรงนี้ถ้าท่านยังไม่ได้เคย Shutdown เครื่องเลย ท่านจะต้องมี 2 terminals ที่เปิดค้างอยู่
เอาหละ เราจะมาเริ่มสร้างข้อมูลกัน เริ่มจากคำสั่ง
- show dbs เอาไว้แสดงฐานข้อมูลทั้งหมดที่เรามีใน project นี้
show dbs
- use aiyara เอาไว้สร้างหรือถ้ามีอยู่แล้วคือเรียกใช้ (ผมใช้ชื่อ aiyara)
use aiyara
หลังจากเราเรียกใช้ aiyara แล้ว จากเดิมที่เป็น test > จะเปลี่ยนเป็นชื่อที่เราเรียกใช้
- db.branch.insertOne( { name: “Lisa”, age: 18 } ) เพื่อสร้างข้อมูลขึ้นมา 1 ชุด
db.branch.insertOne( { name: "Lisa", age: 18 } )
คำสั่งเหล่านี้เมื่อพิมพ์แล้วต้องกด Enter เพื่อเป็นการสั่งการด้วยทุกบรรทัด
ข้อมูลที่เราเพิ่งสร้างขึ้นมานั้นจริงๆมันก็คือ Object แต่ !!!! ผมอยากให้จำว่าผู้สร้าง Mongo เขาเรียกมันว่า “Document” เราต้องใช้ตามเขาเพราะเวลาเอาไปถามใน ChatGPT มันจะได้เข้าใจว่าเราอยากจะสร้างอะไร มาดูว่ามีคำสั่งอื่นที่ควรรู้อีกไหม
- db.branch.find() เอาไว้ดู Document ทั้งหมด
db.branch.find()
- db.branch.find( { name: ‘Lisa’} ) หา Document ที่มีชื่อ Lisa
db.branch.find( { name: 'Lisa'} )
Output :
[ { _id: ObjectId(“64723ab0e048c0ca957adda8”), name: ‘Lisa’, age: 18 } ]
และข้างล่างคือรูปตัวอย่างคำสั่ง SQL ที่ผมทดลองพิมพ์ไว้ทั้งหมด
ถ้าผิดแม้แต่ตัวเดียวอย่างเช่น ลืมพิมพ์ , ก็จะเกิด error ทันที
มาถึงตรงนี้ก็เรียกได้ว่าเราสามารถสร้างฐานข้อมูลด้วย MongoDB ในเครื่องเราเรียบร้อย ใครอยากจะรู้คำสั่งเชิงลึกของ MongoDB ก็ลองถาม ChatGPT ก็ได้ สะดวกดี อ่านง่าย เข้าใจง่าย Ai จงเจริญ !!!
ในตอนต่อไปจะเป็นการเอา NodeJS Connect มาที่ MongoDB
แล้วพบกันตอนต่อไป …