مشاركة عبر


Quickstart: استخدم Azure DocumentDB مع برنامج تشغيل MongoDB للبايثون

في هذا البدء السريع، تنشئ تطبيق Azure DocumentDB الأساسي باستخدام بايثون. Azure DocumentDB هو مخزن بيانات NoSQL يسمح للتطبيقات بتخزين المستندات في السحابة والوصول إليها باستخدام برامج تشغيل MongoDB الرسمية. يوضح هذا الدليل كيفية إنشاء المستندات وأداء المهام الأساسية في مجموعة Azure DocumentDB باستخدام بايثون.

مرجع | APIالشيفرة | المصدريةالحزمة (PyPI)

Prerequisites

  • اشتراك Azure

  • Python 3.12 أو أحدث

إنشاء عنقود Azure DocumentDB

للبدء، تحتاج أولا إلى إنشاء مجموعة Azure DocumentDB، والتي تعد الأساس لتخزين وإدارة بيانات NoSQL الخاصة بك.

  1. تسجيل الدخول إلى بوابة Azure (https://portal.azure.com).

  2. من قائمة مدخل Microsoft Azure أو الصفحة الرئيسية، حدد إنشاء مورد.

  3. في الصفحة الجديدة ، ابحث عن Azure DocumentDB واختر ذلك.

    لقطة شاشة تظهر البحث عن Azure DocumentDB.

  4. في صفحة مجموعة إنشاء Azure DocumentDB وداخل قسم الأساسيات ، اختر خيار التكوين داخل قسم مستوى العنقود .

    لقطة شاشة تظهر خيار تكوين العنقود.

  5. في صفحة المقياس ، قم بتكوين هذه الخيارات ثم اختر الحفظ لاستمرار تغييراتك في مستوى العنقود.

    القيمة‬
    طبقة نظام المجموعة M30 tier, 2 vCore, 8-GiB RAM
    التخزين لكل جزء 128 GiB

    لقطة شاشة لخيارات التكوين للحوسبة والتخزين لمجموعة جديدة من Azure DocumentDB.

  6. في قسم الأساسيات، قم بتكوين الخيارات التالية:

    القيمة‬
    اشتراك حدد اشتراك Azure الخاص بك
    مجموعة الموارد إنشاء مجموعة موارد جديدة أو تحديد مجموعة موارد موجودة
    اسم شبكة نظام المجموعة توفير اسم فريد عالميا
    Location تحديد منطقة Azure مدعومة لاشتراكك
    نسخة MongoDB تحديد 8.0
    "Admin username" إنشاء اسم مستخدم للوصول إلى المجموعة كمسؤول مستخدم
    كلمة المرور استخدم كلمة مرور فريدة مرتبطة باسم المستخدم

    لقطة شاشة تظهر معلمات العنقود.

    Tip

    سجل القيم التي تستخدمها لاسم المستخدموكلمة المرور. تستخدم هذه القيم لاحقا في هذا الدليل. لمزيد من المعلومات حول القيم الصحيحة، انظر حدود التجمع.

  7. حدد Next: Networking.

  8. في قسم قواعد جدار الحماية في تبويب الشبكات ، قم بتكوين هذه الخيارات:

    القيمة‬
    أسلوب الاتصال Public access
    السماح بالوصول العام من خدمات وموارد Azure داخل Azure إلى هذا العنقود Enabled
  9. أضف قاعدة جدار حماية لجهاز العميل الحالي الخاص بك لمنح الوصول إلى العنقود عن طريق اختيار + إضافة عنوان IP الحالي للعميل.

    لقطة شاشة تظهر إعدادات الشبكة.

    Tip

    في العديد من بيئات الشركة، يتم إخفاء عناوين IP لجهاز المطور بسبب VPN أو إعدادات شبكة الشركة الأخرى. في هذه الحالات، يمكنك السماح مؤقتا بالوصول إلى جميع عناوين IP بإضافة 0.0.0.0 - 255.255.255.255 نطاق عناوين IP كقاعدة جدار حماية. استخدم قاعدة جدار الحماية هذه مؤقتا فقط كجزء من اختبار وتطوير الاتصال.

  10. حدد "Review + create".

  11. راجع الإعدادات التي تقدمها، ثم حدد إنشاء. يستغرق بضع دقائق لإنشاء المجموعة. انتظر حتى يكتمل نشر الموارد.

  12. وأخيرا، اختر Go to resource للانتقال إلى عنقود Azure DocumentDB في البوابة.

لقطة شاشة تظهر خيارات الموارد الجاهزة.

الحصول على بيانات اعتماد نظام المجموعة

احصل على بيانات الاعتماد التي تستخدمها للاتصال بالعنقود.

  1. في صفحة المجموعة، اختر خيار سلاسل الاتصال في قائمة الموارد.

  2. في قسم سلاسل الاتصال ، قم بنسخ أو تسجيل القيمة من حقل سلسلة الاتصال .

لقطة شاشة تظهر خيار سلاسل الاتصال.

Important

لا تتضمن سلسلة الاتصال في البوابة الإلكترونية قيمة كلمة المرور. يجب استبدال العنصر النائب <password> ببيانات الاعتماد التي أدخلتها عند إنشاء نظام المجموعة أو إدخال كلمة المرور بشكل تفاعلي.

تهيئة المشروع

أنشئ مشروع بايثون جديد وقم بإعداد بيئة افتراضية في دليلك الحالي.

  1. ابدأ في دليل فارغ.

  2. افتح طرفية في الدليل الحالي.

  3. أنشئ وفعل بيئة افتراضية.

    python -m venv venv
    venv\Scripts\activate
    

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

مكتبة العميل متاحة من خلال PyPI، كحزمة pymongo متوفرة.

  1. قم بتثبيت برنامج تشغيل MongoDB Python باستخدام pip.

    pip install pymongo
    
  2. أنشئ ملف بايثون جديد يحمل اسم main.py كود تطبيقك.

  3. استيراد الوحدات المطلوبة إلى كود التطبيق:

    from pymongo import MongoClient
    from pymongo.errors import ConnectionFailure
    import sys
    

نموذج الكائن

Name Description
MongoClient النوع المستخدم للاتصال ب MongoDB.
Database يمثل قاعدة بيانات في نظام المجموعة.
Collection يمثل مجموعة داخل قاعدة بيانات في نظام المجموعة.

أمثلة على التعليمات البرمجية

يرتبط الكود في هذا التطبيق بقاعدة بيانات مسماة adventureworks ومجموعة باسم products. تحتوي المجموعة products على تفاصيل مثل الاسم، الفئة، الكمية، معرف فريد، وعلم بيع لكل منتج. عينات الكود هنا تقوم بأكثر العمليات شيوعا عند العمل مع مجموعة.

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

أولا، اتصل بالعميل باستخدام سلسلة اتصال أساسية.

  1. أنشئ الدالة الرئيسية وقم بإعداد سلسلة الاتصال. استبدل <your-cluster-name>، <your-username>، و <your-password> بمعلومات العنقود الفعلية الخاصة بك.

    def main():
        try:
            # Connection string for Azure DocumentDB cluster
            connection_string = "mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
            # Create a new client and connect to the server
            client = MongoClient(connection_string)
    
  2. اتصل بعميل MongoDB وتحقق من الاتصال.

            # Ping the server to verify connection
            client.admin.command('ping')
            print("Successfully connected and pinged Azure DocumentDB")
    

الحصول على مجموعة

الآن، احصل على قاعدة بياناتك ومجموعتك. إذا لم تكن قاعدة البيانات والمجموعة موجودة بالفعل، استخدم برنامج التشغيل لإنشاؤها تلقائيا.

  1. احصل على مرجع لقاعدة البيانات.

            # Get database reference
            database = client["adventureworks"]
            print(f"Connected to database: {database.name}")
    
  2. احصل على مرجع للمجموعة داخل قاعدة البيانات.

            # Get collection reference
            collection = database["products"]
            print("Connected to collection: products")
    

إنشاء مستند

ثم، أنشئ بعض المستندات الجديدة ضمن مجموعتك. قم بترقية الوثائق لضمان استبدال أي مستندات موجودة إذا كانت موجودة بالفعل بنفس المعرف الفريد.

  1. أنشئ نماذج مستندات منتج.

            # Create sample products
            products = [
                {
                    "_id": "00000000-0000-0000-0000-000000004018",
                    "name": "Windry Mittens",
                    "category": "apparel-accessories-gloves-and-mittens",
                    "quantity": 121,
                    "price": 35.00,
                    "sale": False,
                },
                {
                    "_id": "00000000-0000-0000-0000-000000004318",
                    "name": "Niborio Tent",
                    "category": "gear-camp-tents",
                    "quantity": 140,
                    "price": 420.00,
                    "sale": True,
                }
            ]
    
  2. أدخل المستندات باستخدام عمليات upsert.

            # Insert documents with upsert
            for product in products:
                filter_doc = {"_id": product["_id"]}
                collection.replace_one(filter_doc, product, upsert=True)
                print(f"Upserted product: {product['name']}")
    

استرجاع مستند

بعد ذلك، قم بإجراء عملية قراءة نقطية لاسترجاع مستند معين من مجموعتك.

  1. حدد الفلتر للعثور على مستند معين حسب معرف.

            # Retrieve a specific document by ID
            filter_doc = {"_id": "00000000-0000-0000-0000-000000004018"}
    
  2. نفذ الاستعلام واسترج النتيجة.

            retrieved_product = collection.find_one(filter_doc)
    
            if retrieved_product:
                print(f"Retrieved product: {retrieved_product['name']} - ${retrieved_product['price']}")
            else:
                print("Product not found")
    

الاستعلام عن المستندات

وأخيرا، استعلام عدة مستندات باستخدام لغة الاستعلام MongoDB (MQL).

  1. حدد استعلاما للعثور على مستندات تطابق معايير محددة.

            # Query for products on sale
            sale_filter = {"sale": True}
            sale_products = list(collection.find(sale_filter))
    
  2. كرر النتائج لعرض المستندات المطابقة.

            print("Products on sale:")
            for product in sale_products:
                print(f"- {product['name']}: ${product['price']:.2f} (Category: {product['category']})")
    
        except ConnectionFailure as e:
            print(f"Could not connect to MongoDB: {e}")
            sys.exit(1)
        except Exception as e:
            print(f"An error occurred: {e}")
            sys.exit(1)
        finally:
            client.close()
    
    if __name__ == "__main__":
        main()
    

استكشف بياناتك باستخدام كود Visual Studio

استخدم امتداد DocumentDB في كود Visual Studio لأداء العمليات الأساسية لقواعد البيانات، بما في ذلك الاستعلام، والإدراج، والتحديث، وحذف البيانات.

  1. فتح Visual Studio Code.

  2. انتقل إلى عرض الامتدادات وابحث عن المصطلح DocumentDB. حدد موقع امتداد DocumentDB ل VS Code .

  3. اختر زر التثبيت الخاص بالامتداد. انتظر حتى يكتمل التثبيت. أعد تحميل كود فيجوال ستوديو إذا طلب منك ذلك.

  4. انتقل إلى امتداد DocumentDB باختيار الأيقونة المقابلة في شريط النشاط.

  5. في صفحة DocumentDB Connections ، اختر + اتصال جديد....

  6. في الحوار، اختر Service Discovery ثم Azure DocumentDB - Azure Service Discovery.

  7. اختر اشتراك Azure الخاص بك ومجموعة Azure DocumentDB التي أنشأتها حديثا.

    Tip

    في العديد من بيئات الشركة، يتم إخفاء عناوين IP لجهاز المطور بسبب VPN أو إعدادات شبكة الشركة الأخرى. في هذه الحالات، يمكنك السماح مؤقتا بالوصول إلى جميع عناوين IP بإضافة 0.0.0.0 - 255.255.255.255 نطاق عناوين IP كقاعدة جدار حماية. استخدم قاعدة جدار الحماية هذه مؤقتا فقط كجزء من اختبار وتطوير الاتصال. لمزيد من المعلومات، راجع تكوين جدار الحماية.

  8. في نافذة DocumentDB Connections ، قم بتوسيع العقدة الخاصة بمجموعتك وانتقل إلى عقد المستندات والمجموعات الحالية.

  9. افتح قائمة السياق للمجموعة ثم اختر DocumentDB Scrapbook > New DocumentDB Scrapbook.

  10. أدخل أوامر لغة الاستعلام (MQL) التالية من MongoDB ثم اختر تشغيل الكل. راقب مخرجات الأوامر.

    db.products.find({
      price: { $gt: 200 },
      sale: true
    })
    .sort({ price: -1 })
    .limit(3)
    

تنظيف الموارد

عندما تنتهي من مجموعة Azure DocumentDB، يمكنك حذف الموارد التي أنشأتها في Azure حتى لا تتحمل المزيد من الرسوم.

  1. في شريط البحث في مدخل Microsoft Azure، ابحث عن Resource groups وحددها.

    لقطة شاشة تظهر خيار البحث في مجموعات الموارد.

  2. في القائمة، حدد مجموعة الموارد التي استخدمتها لهذا التشغيل السريع.

    لقطة شاشة تظهر مجموعة الموارد.

  3. في صفحة مجموعة الموارد، حدد "Delete resource group".

  4. في مربع حوار تأكيد الحذف، أدخل اسم مجموعة الموارد لتأكيد أنك تنوي حذفها. وأخيرا، حدد حذف لحذف مجموعة الموارد نهائيا.

    لقطة شاشة تظهر زر تأكيد حذف مجموعة الموارد.