MongoEngine: التعامل مع MongoDB في بايثون

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

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

ابدأ الدورة

الدليل الشامل لـ MongoEngine: التعامل مع MongoDB في بايثون

مقدمة عن MongoEngine

مع تطور قواعد بيانات NoSQL، يختار المزيد من مطوري بايثون MongoDB لتخزين البيانات. وذلك بفضل مرونتها وقابليتها للتوسع وهيكلها الموجه للمستندات. لتبسيط التفاعل مع MongoDB، تم إنشاء مكتبة MongoEngine — وهي أداة تعيين الكائنات والمستندات (ODM)، التي تتيح لك التعامل مع مستندات MongoDB ككائنات بايثون.

توفر MongoEngine واجهة قوية وسهلة في نفس الوقت لتعريف النماذج، وتنفيذ الاستعلامات، والتحقق من صحة البيانات دون الحاجة إلى كتابة كود معقد خاص بـ MongoDB. تعتبر هذه المكتبة واحدة من أشهر الحلول للعمل مع MongoDB في نظام بايثون البيئي.

أساسيات MongoDB ودور MongoEngine

NoSQL والتخزين الموجه للمستندات

MongoDB هي قاعدة بيانات موجهة للمستندات، حيث يتم تخزين البيانات بتنسيق BSON (JSON ثنائي). وهذا يجعل MongoDB مرنة، خاصة عند التعامل مع هياكل البيانات المتداخلة المعقدة. على عكس قواعد البيانات العلائقية، لا تتطلب MongoDB مخططًا ثابتًا وتسمح بتغيير هيكل المستندات ديناميكيًا.

تعيين الكائنات والمستندات (ODM)

يعمل ODM (Object Document Mapper) بشكل مشابه لـ ORM، لكنه يتعامل مع المستندات والمجموعات بدلاً من الجداول والصفوف. تقوم MongoEngine بتنفيذ تجريدات ODM لـ MongoDB، مما يوفر واجهة برمجة تطبيقات نظيفة ومكتوبة بأسلوب بايثون. وهذا يسمح للمطورين بالعمل مع قاعدة البيانات باستخدام كائنات بايثون المألوفة، دون التعمق في تفاصيل بناء جملة MongoDB.

مزايا MongoEngine

تقدم MongoEngine العديد من المزايا الرئيسية:

  • بناء جملة تصريحي: يتم وصف النماذج كفئات بايثون
  • التحقق التلقائي: فحص مدمج للبيانات على مستوى الحقول
  • دعم العلاقات: إمكانية إنشاء علاقات بين المجموعات
  • الفهرسة: تعريف بسيط للفهارس لتحسين الاستعلامات
  • التكامل مع أطر الويب: تكامل سهل مع Flask و Django وغيرها

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

تثبيت المكتبة

pip install mongoengine

للعمل مع MongoDB، ستحتاج أيضًا إلى تثبيت خادم MongoDB نفسه. يمكنك استخدام تثبيت محلي أو خدمات سحابية مثل MongoDB Atlas.

الاتصال بقاعدة البيانات

اتصال أساسي بـ MongoDB محلي:

from mongoengine import connect

connect(db='library', host='localhost', port=27017)

الاتصال باستخدام سلسلة الاتصال:

connect(host='mongodb://localhost:27017/library')

الاتصال بـ MongoDB Atlas أو أي خدمة سحابية أخرى:

connect(host='mongodb+srv://username:password@cluster.mongodb.net/database?retryWrites=true&w=majority')

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

connect(
    db='library',
    host='localhost',
    port=27017,
    username='admin',
    password='password',
    authentication_source='admin'
)

إنشاء النماذج في MongoEngine

أساسيات تعريف النماذج

تستخدم MongoEngine فئات بايثون لوصف هيكل المستندات. كل نموذج يرث من الفئة Document:

from mongoengine import Document, StringField, DateField, IntField

class Author(Document):
    name = StringField(required=True, max_length=100)
    birth_date = DateField()
    books_count = IntField(default=0)
    
    def __str__(self):
        return self.name

بيانات النموذج الوصفية

تسمح الفئة Meta بضبط العديد من الخصا

توصيات