العمل مع الصفائف والكائنات في 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
الكلمة الأساسية للتكرار، لا يمكنك تصفية أو عرض أي خصائص خارج الصفيف. بدلا من ذلك، يجب عليك استخدام الصلات الذاتية.