مشاركة عبر


العمل مع الصفائف والكائنات في Azure Cosmos DB ل NoSQL

ينطبق على: NoSQL

فيما يلي عنصر يستخدم في الأمثلة في هذه المقالة.

{
  "name": "Sondon Fins",
  "categories": [
     { "name": "swim" },
     { "name": "gear"}
  ],
  "metadata": {
    "sku": "73310",
    "manufacturer": "AdventureWorks"
  },
  "priceInUSD": 132.35,
  "priceInCAD": 174.50
}

الصفائف

يمكنك إنشاء صفائف باستخدام قيم ثابتة، كما هو موضح في المثال التالي.

SELECT
  [p.priceInUSD, p.priceInCAD] AS priceData
FROM products p
[
  {
    "priceData": [
      132.35,
      174.5
    ]
  }
]

يمكنك أيضا استخدام ARRAY التعبير لإنشاء صفيف من نتائج الاستعلام الفرعي. يحصل هذا الاستعلام على جميع الفئات المميزة.

SELECT
    p.id,
    ARRAY (SELECT DISTINCT VALUE c.name FROM c IN p.categories) AS categoryNames
FROM
    products p
[
  {
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "categoryNames": [
      "swim",
      "gear"
    ]
  }
]

التكرار

توفر واجهة برمجة التطبيقات ل NoSQL الدعم للتكرار عبر صفائف JSON، مع IN الكلمة الأساسية في FROM المصدر.

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

SELECT
    *
FROM 
  products IN products.categories
[
  {
    "name": "swim"
  },
  {
    "name": "gear"
  }
]

يمكنك التصفية الإضافية على كل إدخال فردي للصفيف، كما هو موضح في المثال التالي:

SELECT VALUE
    p.name
FROM
    p IN p.categories
WHERE
    p.name LIKE "ge%"

والنتائج هي:

[
  "gear"
]

يمكنك أيضاً التجميع من خلال نتيجة تكرار صفيف. على سبيل المثال، يحسب الاستعلام التالي عدد العلامات:

SELECT VALUE
    COUNT(1)
FROM
    p IN p.categories

والنتائج هي:

[
  2
]

إشعار

عند استخدام IN الكلمة الأساسية للتكرار، لا يمكنك تصفية أو عرض أي خصائص خارج الصفيف. بدلا من ذلك، يجب عليك استخدام الصلات الذاتية.