PyMongo: مشغل MongoDB الرسمي لبايثون

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة

في عالم تطوير البرمجيات الحديث، أصبحت قواعد بيانات NoSQL جزءًا لا يتجزأ من البنية التقنية. تُعد MongoDB، باعتبارها واحدة من أبرز أنظمة إدارة قواعد البيانات الوثائقية، أداة قوية للمطورين للتعامل مع البيانات غير المهيكلة. يعمل PyMongo كمشغل Python الرسمي لـ MongoDB، مما يوفر تكاملًا كاملاً بين تطبيقات Python و MongoDB.

ما هو PyMongo

PyMongo هي مكتبة Python الرسمية للتفاعل مع MongoDB. إنه مشغل عالي الأداء يوفر وصولًا مباشرًا إلى جميع إمكانيات MongoDB، بما في ذلك الميزات الحديثة مثل المعاملات، وتدفقات التغيير، والمجموعات المؤقتة.

الميزات الرئيسية لـ PyMongo

التوافق ودعم الإصدارات

  • دعم إصدارات MongoDB 3.6 و 4.0 و 4.2 و 4.4 و 5.0 و 6.0 و 7.0
  • متوافق مع Python 3.7+
  • تحديثات منتظمة وتصحيحات أمنية

الإمكانيات الوظيفية

  • دعم كامل لتنسيق BSON (Binary JSON)
  • دعم مدمج لـ GridFS لتخزين الملفات الكبيرة
  • إعادة الاتصال التلقائي عند حدوث أعطال
  • دعم تشفير SSL/TLS
  • مراقبة الأداء وتحليل الأداء

المزايا المعمارية

  • عمليات آمنة للخيوط (Thread-safe)
  • مجموعات اتصال (Connection Pools)
  • اكتشاف تلقائي لطوبولوجيا الكتلة
  • دعم النسخ المتماثلة والتقسيم (Sharding)

تثبيت وإعداد PyMongo

التثبيت الأساسي

pip install pymongo

التثبيت مع إمكانيات إضافية

# للعمل مع التشفير
pip install pymongo[encryption]

# للعمل مع Kerberos
pip install pymongo[gssapi]

# للعمل غير المتزامن
pip install motor

التحقق من التثبيت

import pymongo
print(pymongo.version)

الاتصال بـ MongoDB

طرق الاتصال الأساسية

الاتصال المحلي

from pymongo import MongoClient

# اتصال بسيط
client = MongoClient()
# أو
client = MongoClient('localhost', 27017)
# أو
client = MongoClient('mongodb://localhost:27017/')

الاتصال مع المصادقة

client = MongoClient('mongodb://username:password@localhost:27017/')

الاتصال بـ MongoDB Atlas

client = MongoClient('mongodb+srv://username:password@cluster.mongodb.net/')

الاتصال مع SSL

client = MongoClient('mongodb://localhost:27017/',
                    ssl=True,
                    ssl_cert_reqs=ssl.CERT_NONE)

معاملات الاتصال

client = MongoClient(
    host='localhost',
    port=27017,
    maxPoolSize=50,
    minPoolSize=10,
    maxIdleTimeMS=30000,
    connectTimeoutMS=5000,
    socketTimeoutMS=5000,
    serverSelectionTimeoutMS=5000,
    retryWrites=True,
    retryReads=True
)

المكونات الأساسية لـ PyMongo

العمل مع قواعد البيانات

# الحصول على قاعدة بيانات
db = client['mydatabase']
# أو
db = client.mydatabase

# قائمة بجميع قواعد البيانات
databases = client.list_database_names()

# حذف قاعدة بيانات
client.drop_database('mydatabase')

# الحصول على إحصائيات قاعدة البيانات
stats = db.command('dbstats')

العمل مع المجموعات

# الحصول على مجموعة
collection = db['mycollection']
# أو
collection = db.mycollection

# إنشاء مجموعة مع خيارات
db.create_collection('m                    

توصيات