مشاركة عبر


التشغيل السريع: استخدم Azure Cosmos DB ل MongoDB (RU) مع Node.js

في هذا التشغيل السريع، يمكنك نشر Azure Cosmos DB أساسي لتطبيق MongoDB باستخدام Python. Azure Cosmos DB ل MongoDB هو مخزن بيانات بلا مخطط يسمح للتطبيقات بتخزين المستندات غير المنظمة في السحابة مع مكتبات MongoDB. ستتعلم كيفية إنشاء المستندات وتنفيذ المهام الأساسية داخل مورد Azure Cosmos DB باستخدام Python.

حزمة التعليمات البرمجية | المصدر للمكتبة (npm) | Azure Developer CLI

المتطلبات الأساسية

  • Azure Developer CLI
  • Docker Desktop
  • Node.js 22 أو أحدث

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

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

استخدم Azure Developer CLI (azd) لإنشاء حساب Azure Cosmos DB للجدول ونشر نموذج تطبيق حاوية. يستخدم نموذج التطبيق مكتبة العميل لإدارة البيانات النموذجية وإنشاءها وقراءتها والاستعلام عن البيانات.

  1. افتح محطة طرفية في دليل فارغ.

  2. إذا لم تكن قد تمت مصادقتك بالفعل، فقم بالمصادقة على Azure Developer CLI باستخدام azd auth login. اتبع الخطوات المحددة بواسطة الأداة للمصادقة على CLI باستخدام بيانات اعتماد Azure المفضلة لديك.

    azd auth login
    
  3. استخدم azd init لتهيئة المشروع.

    azd init --template cosmos-db-mongodb-nodejs-quickstart
    
  4. أثناء التهيئة، قم بتكوين اسم بيئة فريد.

  5. انشر حساب Azure Cosmos DB باستخدام azd up. تنشر قوالب Bicep أيضا نموذج تطبيق ويب.

    azd up
    
  6. أثناء عملية التوفير، حدد اشتراكك والموقع المطلوب ومجموعة الموارد المستهدفة. انتظر حتى اكتمال عملية التوفير. قد تستغرق العملية حوالي خمس دقائق.

  7. بمجرد توفير موارد Azure الخاصة بك، يتم تضمين عنوان URL لتطبيق الويب قيد التشغيل في الإخراج.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. استخدم عنوان URL في وحدة التحكم للانتقال إلى تطبيق الويب الخاص بك في المستعرض. لاحظ إخراج التطبيق قيد التشغيل.

لقطة شاشة لتطبيق الويب قيد التشغيل.

لقطة شاشة لتطبيق الويب قيد التشغيل.

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

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

  1. افتح terminal وانتقل إلى /src/ts المجلد.

    cd ./src/ts
    
  2. إذا لم يكن مثبتا بالفعل، فقم بتثبيت الحزمة mongodb باستخدام npm install.

    npm install --save mongodb
    
  3. افتح ملف src/ts/package.json وراجعه للتحقق من mongodb وجود الإدخال.

  1. افتح terminal وانتقل إلى /src/js المجلد.

    cd ./src/js
    
  2. إذا لم يكن مثبتا بالفعل، فقم بتثبيت الحزمة mongodb باستخدام npm install.

    npm install --save mongodb
    
  3. افتح ملف src/js/package.json وراجعه للتحقق من mongodb وجود الإدخال.

نموذج الكائن

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

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

يستخدم نموذج التعليمات البرمجية في القالب قاعدة بيانات باسم cosmicworks ومجموعة باسم products. products تحتوي المجموعة على تفاصيل مثل الاسم والفئة والكمية والمعرف الفريد لكل منتج. تستخدم المجموعة الخاصية /category كمفتاح جزء.

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

ينشئ هذا النموذج مثيلا جديدا من MongoClient النوع .

const connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

const client = new MongoClient(connectionString);
const connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

const client = new MongoClient(connectionString);

الحصول على قاعدة بيانات

ينشئ هذا النموذج مثيلا من Db النوع باستخدام الدالة db من MongoClient النوع .

const database: Db = client.db("<database-name>");
const database = client.db("<database-name>");

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

ينشئ هذا النموذج مثيلا من Collection النوع باستخدام الدالة collection من Db النوع .

تحتوي هذه الدالة على معلمة عامة تستخدم Product النوع المحدد في واجهة.

const collection: Collection<Product> = database.collection<Product>("<collection-name>");
export interface Product {
    _id: string;
    category: string;
    name: string;
    quantity: number;
    price: number;
    clearance: boolean;
}
const collection = database.collection("<collection-name>");

إنشاء مستند

إنشاء مستند في المجموعة باستخدام collection.updateOne. هذا الأسلوب "upserts" العنصر استبدال العنصر بشكل فعال إذا كان موجودا بالفعل.

var document: Product = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards',
    name: 'Yamba Surfboard',
    quantity: 12,
    price: 850.00,
    clearance: false
};

var query: Filter<Product> = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards'
};
var payload: UpdateFilter<Product> = {
    $set: document
};
var options: UpdateOptions = {
    upsert: true
};
var response: UpdateResult<Product> = await collection.updateOne(query, payload, options);
var document = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards',
    name: 'Yamba Surfboard',
    quantity: 12,
    price: 850.00,
    clearance: false
};

const query = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards'
};
const payload = {
    $set: document
};
const options = {
    upsert: true,
    new: true
};
var response = await collection.updateOne(query, payload, options);

اقرأ وثيقة

تنفيذ عملية قراءة نقطة باستخدام كل من المعرف الفريد (id) وحقول مفتاح القطع. استخدم collection.findOne لاسترداد العنصر المحدد بكفاءة.

var query: Filter<Product> = { 
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 
    category: 'gear-surf-surfboards' 
};

var response: WithId<Product> | null = await collection.findOne(query);
var query = { 
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 
    category: 'gear-surf-surfboards' 
};

var response = await collection.findOne(query);

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

تنفيذ استعلام عبر عناصر متعددة في حاوية باستخدام collection.find. يبحث هذا الاستعلام عن كافة العناصر ضمن فئة محددة (مفتاح القطع).

var query: Filter<Product> = { 
    category: 'gear-surf-surfboards' 
};

var response: FindCursor<WithId<Product>> = await collection.find(query);
for await (const item of response) {
    // Do something with each item
}
var query = { 
    category: 'gear-surf-surfboards' 
};

var response = await collection.find(query);
for await (const item of response) {
    // Do something with each item
}

استكشف بياناتك

استخدم ملحق Visual Studio Code ل Azure Cosmos DB لاستكشاف بيانات MongoDB. يمكنك تنفيذ عمليات قاعدة البيانات الأساسية بما في ذلك على سبيل المثال لا الحصر:

  • تنفيذ الاستعلامات باستخدام سجل قصاصات أو محرر الاستعلام
  • تعديل المستندات وتحديثها وإنشائه وحذفها
  • استيراد البيانات المجمعة من مصادر أخرى
  • إدارة قواعد البيانات والمجموعات

لمزيد من المعلومات، راجع كيفية استخدام ملحق Visual Studio Code لاستكشاف Azure Cosmos DB لبيانات MongoDB.

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

عندما لم تعد بحاجة إلى نموذج التطبيق أو الموارد، قم بإزالة التوزيع المقابل وجميع الموارد.

azd down