البرنامج التعليمي: الاستعلام عن Azure Cosmos DB باستخدام واجهة برمجة التطبيقات للجدول

ينطبق على: جدول

يدعم Azure Cosmos DB for Table استعلامات OData وLINQ مقابل بيانات المفتاح/القيمة (الجدول).

تتناول هذه المقالة المهام التالية:

  • الاستعلام عن البيانات باستخدام واجهة برمجة التطبيقات للجدول

تستخدم الاستعلامات في هذه المقالة الجدول Peopleالنموذجي التالي:

مفتاح القسم مفتاح الصف البريد الإلكتروني PhoneNumber
Harp Walter Walter@contoso.com 425-555-0101
Smith Ben Ben@contoso.com 425-555-0102
Smith Jeff Jeff@contoso.com 425-555-0104

للحصول على تفاصيل حول كيفية الاستعلام باستخدام واجهة برمجة التطبيقات للجدول، راجع الاستعلام عن الجداول والكيانات.

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

لتشغيل هذه الاستعلامات، لا بد أن تمتلك حساب Azure Cosmos DB وأن تتوافر لديك بيانات الكيان في الحاوية. إذا لم يكن لديك حساب أو بيانات، فأكمل التشغيل السريع: Azure Cosmos DB for Table for .NET لإنشاء حساب وملء قاعدة البيانات الخاصة بك.

الاستعلام عن PartitionKey وRowKey

نظرًا إلى أن خصائص PartitionKey وRowKey تشكل المفتاح الأساسي للكيان، يمكنك استخدام البناء التالي لتعريف الكيان:

استفسار

https://<mytableendpoint>/People(PartitionKey='Harp',RowKey='Walter')

النتائج

مفتاح القسم مفتاح الصف البريد الإلكتروني PhoneNumber
Harp Walter Walter@contoso.com 425-555-0104

بدلاً من ذلك، يمكنك تحديد هذه الخصائص كجزء من الخيار $filter حسبما هو موضح في القسم التالي. أسماء خصائص المفتاح والقيم الثابتة حساسة لحالة الأحرف. كل من خصائص PartitionKey وRowKey من النوع String.

الاستعلام باستخدام عامل تصفية OData

ضع هذه القواعد في الاعتبار عند إنشاء سلسلة تصفية:

  • استخدم عوامل التشغيل المنطقية المعرفة بواسطة مواصفات بروتوكول OData لمقارنة الخاصية مقابل القيمة. لا يمكنك مقارنة خاصية بقيمة ديناميكية. لا بد أن يكون أحد جوانب المصطلح ثابتًا.
  • يجب أن تفصل المسافات المشفرة بعنوان URL اسم الخاصية وعامل التشغيل والقيمة الثابتة. تمثل الفاصلة مسافة مشفرة بعنوان URL كما في%20.
  • جميع أجزاء سلسلة عوامل التصفية حساسة لحالة الأحرف.
  • لا بد أن تكون القيمة الثابتة من نفس نوع البيانات كالخاصية حتى يتمكن عامل التصفية من إعادة النتائج الصحيحة. لمزيد من المعلومات حول أنواع الخصائص المدعومة، راجع فهم نموذج بيانات خدمة الجدول.

يرد أدناه نموذج الاستعلام الذي يوضح كيفية التصفية حسب خصائص PartitionKey والبريد الإلكتروني باستخدام OData $filter.

استفسار

https://<mytableapi-endpoint>/People()?$filter=PartitionKey%20eq%20'Smith'%20and%20Email%20eq%20'Ben@contoso.com'

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

النتائج

مفتاح القسم مفتاح الصف البريد الإلكتروني PhoneNumber
Smith Ben Ben@contoso.com 425-555-0102

لا ترجع الاستعلامات في خصائص التاريخ والوقت أي بيانات عند تنفيذها في واجهة برمجة تطبيقات Azure Cosmos DB للجدول. بينما يخزن تخزين Azure Table قيم التاريخ مع دقة الوقت للعلامات، تستخدم واجهة برمجة التطبيقات للجدول في Azure Cosmos DB الخاصية _ts . ترد خاصية_tsفي المستوى الثاني من التفاصيل ولا يمثل عامل تصفية OData. يقوم Azure Cosmos DB بحظر الاستعلامات على خصائص الطابع الزمني. وكحل بديل، يمكنك تعريف خاصية datetime أو نوع البيانات الطويلة وتحديد قيمة التاريخ من العميل.

الاستعلام باستخدام LINQ

يمكنك أيضًا الاستعلام باستخدام LINQ الذي يترجم إلى تعبيرات استعلام OData المطابقة. فيما يلي مثال عن كيفية إنشاء استعلامات باستخدام SDK.NET:

IQueryable<CustomerEntity> linqQuery = table.CreateQuery<CustomerEntity>()
            .Where(x => x.PartitionKey == "4")
            .Select(x => new CustomerEntity() { PartitionKey = x.PartitionKey, RowKey = x.RowKey, Email = x.Email });

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

يمكنك الآن المتابعة إلى البرنامج التعليمي التالي لمعرفة كيفية توزيع البيانات على مستوى العالم.