إنشاء حاوية في Azure Cosmos DB ل NoSQL باستخدام .NET

ينطبق على: NoSQL

تخزن الحاويات في Azure Cosmos قاعدة بيانات مجموعات من العناصر. قبل أن تتمكن من إنشاء العناصر أو الاستعلام عنها أو إدارتها، يجب عليك أولاً إنشاء حاوية.

تسمية حاوية

في Azure Cosmos قاعدة بيانات تكون الحاوية مماثلة لجدول في قاعدة بيانات علائقية. عند إنشاء حاوية، يشكل اسم الحاوية مقطعًا من URI المستخدم للوصول إلى مورد الحاوية وأي عناصر فرعية.

فيما يلي بعض القواعد السريعة عند تسمية الحاوية:

  • يجب ألا تكون أسماء الحاويات فارغة.
  • لا يمكن أن تزيد أسماء الحاويات عن 256 حرفا.

بمجرد الإنشاء، يكون عنوان URI للحاوية بهذا التنسيق:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>

تلميح

لمزيد من المعلومات حول حدود اسم الحاوية، راجع حصص الخدمة وحدودها

إنشاء حاوية

لإنشاء حاوية، قم باستدعاء أحد الأساليب التالية:

قم بإنشاء حاوية بشكل غير متزامن

في المثال التالي، يتم إنشاء حاوية بشكل غير متزامن:

// New instance of Container class referencing the server-side container
Container container1 = await database.CreateContainerAsync(
    id: "products-1",
    partitionKeyPath: "/category",
    throughput: 400
);

Database.CreateContainerAsync يطرح الأسلوب استثناء إذا كانت قاعدة بيانات بنفس الاسم موجودة بالفعل.

أنشئ حاوية بشكل غير متزامن إذا لم تكن موجودة بالفعل

ينشئ المثال التالي حاوية بشكل غير متزامن فقط إذا لم تكن موجودة بالفعل على الحساب:

// New instance of Container class referencing the server-side container
Container container2 = await database.CreateContainerIfNotExistsAsync(
    id: "products-2",
    partitionKeyPath: "/category",
    throughput: 400
);

Database.CreateContainerIfNotExistsAsync ينشئ الأسلوب حاوية جديدة فقط إذا لم تكن موجودة بالفعل. هذا الأسلوب مفيد لتجنب الأخطاء إذا قمت بتشغيل نفس التعليمة البرمجية عدة مرات.

تحليل الاستجابة

في جميع الأمثلة حتى الآن، تم توجيه الاستجابة من الطلب غير المتزامن على الفور إلى Containerالنوع. قد ترغب في بيانات التعريف الوصفية حول الاستجابة بما في ذلك الرؤوس ورمز حالة HTTP. نوع الإرجاع الحقيقي ل Database.CreateContainerAsync و Database.CreateContainerIfNotExistsAsync هو طريقةContainerResponse.

يوضح المثال التالي طريقة Database.CreateContainerIfNotExistsAsync الطريقة التي ترجع ContainerResponse. بمجرد إرجاعها، يمكنك تحليل خصائص الاستجابة ثم الحصول في النهاية على كائن حاوية الأساسي:

// New instance of Container class referencing the server-side container
ContainerResponse response = await database.CreateContainerIfNotExistsAsync(
    id: "products-3",
    partitionKeyPath: "/category",
    throughput: 400
);
// Parse additional response properties
Container container3 = response.Container;

الخطوات التالية

الآن بعد أن قمت بإنشاء حاوية، استخدم الدليل التالي لإنشاء العناصر.