23 ธ.ค. 2025 เวลา 05:39 • การศึกษา

PyMongo คืออะไร

โดย
ในยุคที่ Python เป็นภาษาหลักสำหรับการจัดการข้อมูล (Data Science) และ การพัฒนาเว็บ ส่วน MongoDB เป็นจ้าวแห่งฐานข้อมูล NoSQL ที่ยืดหยุ่นที่สุด การจะทำให้ทั้งสองทำงานร่วมกันได้อย่างราบรื่นจำเป็นต้องมีตัวกลางที่ทรงพลัง ซึ่งนั่นคือหน้าที่ของ PyMongo ไดรเวอร์อย่างเป็นทางการที่ทำให้โค้ด Python ของคุณคุยกับ MongoDB ได้อย่างเป็นธรรมชาติ
  • ​PyMongo คืออะไร
PyMongo คือ Library หรือ Driver อย่างเป็นทางการที่พัฒนาโดยทีม MongoDB เพื่อให้ภาษา Python สามารถจัดการข้อมูลใน MongoDB ได้ โดยหน้าที่หลักของมันคือการแปลงข้อมูลระหว่าง Python Dictionary และ รูปแบบ BSON (Binary JSON) ที่ MongoDB ใช้เก็บข้อมูลจริง
  • 💡 ​ลองจินตนาการว่า
1
MongoDB = ตู้เก็บเอกสารอัจฉริยะ
Python Code = คุณที่ต้องการเขียน หรือ อ่านเอกสาร
PyMongo = ผู้ช่วยส่วนตัวที่พูดได้ทั้งภาษาคุณ และ ภาษาของตู้เอกสารนั้น
  • ​🛠️ เริ่มต้นใช้งาน PyMongo
1) การติดตั้ง
คุณสามารถติดตั้ง PyMongo ได้ง่ายๆ ผ่าน pip:
```bash
pip install pymongo
2
```
1
2) การเชื่อมต่อฐานข้อมูล (Connection)
```python
from pymongo import MongoClient
# เชื่อมต่อกับ MongoDB ที่รันอยู่ในเครื่อง (Localhost)
client = MongoClient('mongodb://localhost:27017/')
# เลือกฐานข้อมูล (ถ้ายังไม่มี MongoDB จะสร้างให้โดยอัตโนมัติเมื่อมีการเขียนข้อมูล)
db = client['school_db']
# เลือก Collection (เปรียบเสมือน Table ใน SQL)
students = db['students']
```
  • ​🔥 Workshop: ตัวอย่างคำสั่ง CRUD ที่ใช้บ่อย
1. การเพิ่มข้อมูล (Create)
ใน PyMongo เราใช้ dict ในการแทนข้อมูลหนึ่งเอกสาร (Document)
```python
# เพิ่มข้อมูล 1 รายการ
student_a = {
"name": "สมชาย",
"grade": 3.5,
"subjects": ["Math", "Science"]
}
result = students.insert_one(student_a)
print(f"เพิ่มข้อมูลสำเร็จ ID: {result.inserted_id}")
# เพิ่มข้อมูลหลายรายการพร้อมกัน
student_list = [
{"name": "สมศรี", "grade": 3.8},
{"name": "วิชัย", "grade": 3.2}
]
students.insert_many(student_list)
```
2) การอ่านข้อมูล (Read)
```python
# ค้นหาข้อมูล 1 รายการ
user = students.find_one({"name": "สมชาย"})
print(user)
# ค้นหาทั้งหมดที่มีเกรดมากกว่า 3.4
# $gt ย่อมาจาก Greater Than
query = {"grade": {"$gt": 3.4}}
for s in students.find(query):
print(s["name"], s["grade"])
2
```
3) การอัปเดตข้อมูล (Update)
```python
# อัปเดตเกรดของสมชาย
filter_query = {"name": "สมชาย"}
new_values = {"$set": {"grade": 3.6}}
students.update_one(filter_query, new_values)
```
4) การลบข้อมูล (Delete)
```python
# ลบข้อมูลที่ชื่อว่า วิชัย
students.delete_one({"name": "วิชัย"})
```
  • ​📊 การใช้งานขั้นสูง Aggregation และ Indexing
PyMongo รองรับฟีเจอร์ระดับสูงของ MongoDB ทั้งหมด เช่นการทำ Aggregation Pipeline เพื่อประมวลผลข้อมูลที่ซับซ้อน
```python
# ตัวอย่าง: หาเกรดเฉลี่ยของนักเรียนทั้งหมด
pipeline = [
{"$group": {"_id": None, "average_grade": {"$avg": "$grade"}}}
]
results = list(students.aggregate(pipeline))
print(f"เกรดเฉลี่ยรวม: {results[0]['average_grade']}")
```
  • ​ประโยชน์
✅️ Pythonic
คำสั่งต่างๆ ถูกออกแบบมาให้เหมือนกับการจัดการ List และ Dictionary ใน Python ทำให้เรียนรู้ได้เร็ว
✅️ ประสิทธิภาพสูง
รองรับการทำ Connection Pooling (จัดการคิวการเชื่อมต่อ) ให้อัตโนมัติ
✅️ ความปลอดภัย
รองรับการเข้ารหัส SSL/TLS และ การยืนยันตัวตนทุกรูปแบบ
✅️ รองรับ Asynchronous หากต้องการความเร็วสูงในโปรเจกต์อย่าง FastAPI สามารถใช้ Library Motor ซึ่งเป็นเวอร์ชั่น Async ของ PyMongo ได้
✏️ Shoper Gamer
  • ​NOSQL คืออะไร 👇
  • ​MongoDB คืออะไร 👇
  • ​Python คืออะไร 👇
Credit :
👇
  • ​https://www.blockdit.com/posts/60683c90bcbced0c3b17173b
  • ​https://www.blockdit.com/posts/60684e49bcbced0c3b1ac6ef
  • ​https://www.mongodb.com/docs/languages/python/pymongo-driver/current/
  • ​https://www.w3schools.com/python/python_mongodb_getstarted.asp
  • ​https://www.w3schools.com/python/python_mongodb_create_db.asp
โฆษณา