26 ธ.ค. 2025 เวลา 13:50 • การศึกษา

MongoDB Shell คืออะไร

โดย
ในโลกของการจัดการฐานข้อมูล นักพัฒนาหลายคนอาจคุ้นเคยกับการใช้ Driver เช่น PyMongo หรือ Mongoose แต่หัวใจสำคัญที่ขาดไม่ได้คือ MongoDB Shell (mongosh) ซึ่งเป็นอินเตอร์เฟซบรรทัดคำสั่ง (CLI) อย่างเป็นทางการ หากเปรียบฐานข้อมูลเป็นโรงงานผลิตข้อมูล MongoDB Shell ก็คือ "ห้องควบคุมกลาง" ที่ให้คุณสั่งการ และ ตรวจสอบทุกส่วนได้โดยตรง และ รวดเร็วที่สุด
  • ​MongoDB Shell คืออะไร
MongoDB Shell หรือ mongosh คือโปรแกรมอินเตอร์เฟซแบบโต้ตอบ (Interactive) ที่ช่วยให้เราจัดการ MongoDB ได้ผ่านการพิมพ์คำสั่ง
○ Concept
ทำงานแบบ REPL (Read-Eval-Print Loop) คือ อ่านคำสั่ง -> ประมวลผล -> แสดงผล -> รอรับคำสั่งใหม่
○ Modern Engine
เวอร์ชันใหม่ (mongosh) พัฒนาบน Node.js ทำให้รองรับ Syntax ของ JavaScript สมัยใหม่ได้เต็มรูปแบบ
  • ​คำสั่งพื้นฐานและการนำทาง (Navigation)
1) การเชื่อมต่อและการเลือก Database
// แสดงรายชื่อ Database ทั้งหมดในเครื่อง
test> show dbs
// สลับไปใช้งาน Database ชื่อ 'my_store' (ถ้าไม่มีจะสร้างให้ใหม่ตอนใส่ข้อมูล)
test> use my_store
// แสดง Collection (ตาราง) ทั้งหมดใน Database ปัจจุบัน
my_store> show collections
  • ​ตัวอย่างการใช้คำสั่ง CRUD (Create, Read, Update, Delete)
นี่คือหัวใจหลักที่คุณจะได้ใช้งานบ่อยที่สุดในฐานะนักพัฒนา
1) Create (เพิ่มข้อมูล)
// เพิ่มข้อมูลสินค้า 1 ชิ้น
db.products.insertOne({
name: "MacBook Pro",
price: 75000,
stock: 10,
tags: ["electronics", "laptop"]
})
// เพิ่มข้อมูลหลายชิ้นพร้อมกัน
db.products.insertMany([
{ name: "Mouse", price: 500, stock: 50 },
{ name: "Keyboard", price: 1200, stock: 30 }
])
2) Read (อ่าน/ค้นหาข้อมูล)
// ค้นหาสินค้าทั้งหมดที่มีราคามากกว่า 1,000 บาท
db.products.find({ price: { $gt: 1000 } })
// ค้นหาเฉพาะฟิลด์ที่ต้องการ (Projection) เช่น เอาแค่ชื่อ ไม่เอา ID
db.products.find({}, { name: 1, _id: 0 })
// นับจำนวนสินค้าที่มีในระบบ
db.products.countDocuments()
3) Update (แก้ไขข้อมูล)
// อัปเดตราคาของ MacBook Pro
db.products.updateOne(
{ name: "MacBook Pro" },
{ $set: { price: 72000 } }
)
// เพิ่มจำนวน Stock ให้สินค้าทุกชิ้นอีก 5 หน่วย
db.products.updateMany(
{},
{ $inc: { stock: 5 } }
)
4) Delete (ลบข้อมูล)
// ลบสินค้าชื่อ Mouse ออกจากระบบ
db.products.deleteOne({ name: "Mouse" })
  • ​คำสั่งขั้นสูงสำหรับการวิเคราะห์และดูแลระบบ
1) Aggregation Framework (การประมวลผลข้อมูลซับซ้อน)
หากต้องการหาค่าเฉลี่ยราคาสินค้าแยกตามหมวดหมู่:
db.products.aggregate([
{ $match: { stock: { $gt: 0 } } }, // กรองเฉพาะสินค้าที่มีของ
{ $group: { _id: "$tags", avgPrice: { $avg: "$price" } } }, // จัดกลุ่มตาม Tag และหาค่าเฉลี่ย
{ $sort: { avgPrice: -1 } } // เรียงลำดับจากแพงไปถูก
])
1
2) Database Administration (สำหรับสายแอดมิน)
// ตรวจสอบสถานะการทำงานของ Server
db.serverStatus()
// ดูรายการคำสั่งที่กำลังทำงานอยู่ (ใช้หา Query ที่ทำเครื่องค้าง)
db.currentOp()
// ตรวจสอบประสิทธิภาพของ Query ว่าใช้ Index หรือไม่
db.products.find({ name: "MacBook Pro" }).explain("executionStats")
  • ​ประโยชน์
1) Direct Access
เข้าถึงข้อมูลจริงได้ทันทีโดยไม่ต้องผ่านโค้ดแอปพลิเคชัน ลดขั้นตอนการ Debug
2) Automation
สามารถเขียน JavaScript Script รันผ่าน Shell เพื่อทำความสะอาดข้อมูล (Data Cleanup) แบบอัตโนมัติได้
1
3) Real-time Debugging
ใช้คำสั่ง .explain() เพื่อวิเคราะห์ว่าทำไม Query ถึงช้า ช่วยในการทำ Index Optimization
4) Learning Tool
เป็นวิธีที่ดีที่สุดในการเรียนรู้ MongoDB ก่อนจะเริ่มเขียนโค้ดจริง
✏️ Shoper Gamer
  • ​MongoDB คืออะไร 👇
  • ​PyMongo คืออะไร 👇
  • ​CLI คืออะไร 👇
Credit :
👇
  • ​https://www.mongodb.com/docs/mongodb-shell/
  • ​https://www.mongodb.com/try/download/atlas-kubernetes-operator
  • ​https://www.bmc.com/blogs/mongo-shell-basic-commands/
โฆษณา