ObjectToArray (استعلام NoSQL)

ينطبق على: NoSQL

تحويل كل زوج حقل/قيمة في كائن JSON إلى عنصر ثم إرجاع مجموعة العناصر كصفيف JSON. بشكل افتراضي، تحتوي عناصر الصفيف على حقل جديد k لاسم الحقل الأصلي وحقل جديد v لقيمة الحقل الأصلي. يمكن تخصيص أسماء الحقول الجديدة هذه بشكل أكبر.

بناء الجملة

ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])

الوسيطات

الوصف
object_expr تعبير عنصر مع خصائص في أزواج الحقل/القيمة.
string_expr_1(اختياري) تعبير سلسلة باسم للحقل الذي يمثل جزء الحقل من زوج الحقل/القيمة الأصلي.
string_expr_2(اختياري) تعبير سلسلة باسم للحقل الذي يمثل جزء القيمة من زوج الحقل/القيمة الأصلي.

أنواع الإرجاع

صفيف من العناصر مع حقلين، إما k وحقول v مسماة مخصصة.

أمثلة

يوضح هذا المثال تحويل كائن ثابت إلى صفيف من أزواج الحقول/القيم باستخدام المعرفات والإعدادات v الافتراضيةk.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    })
[
  [
    {
      "k": "a",
      "v": "12345"
    },
    {
      "k": "b",
      "v": "67890"
    }
  ]
]

في هذا المثال، يتم تحديث اسم الحقل لاستخدام name المعرف.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    }, "name")
[
  [
    {
      "name": "a",
      "v": "12345"
    },
    {
      "name": "b",
      "v": "67890"
    }
  ]
]

في هذا المثال، يتم تحديث اسم القيمة لاستخدام value المعرف ويستخدم key اسم الحقل المعرف.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    }, "key", "value")
[
  [
    {
      "key": "a",
      "value": "12345"
    },
    {
      "key": "b",
      "value": "67890"
    }
  ]
]

يستخدم هذا المثال النهائي عنصرا داخل حاوية موجودة تخزن البيانات باستخدام الحقول داخل كائن JSON.

[
  {
    "name": "Witalica helmet",
    "category": "sport-helmets",
    "quantities": {
      "small": 15,
      "medium": 24,
      "large": 2,
      "xlarge": 0
    }
  }
]

في هذا المثال، يتم استخدام الدالة لتقسيم الكائن إلى عنصر صفيف لكل زوج حقل/قيمة.

SELECT
    p.name,
    ObjectToArray(p.quantities, "size", "quantity") AS quantitiesBySize
FROM
    products p
WHERE
    p.category = "sport-helmets"
[
  {
    "name": "Witalica helmet",
    "quantitiesBySize": [
      {
        "size": "small",
        "quantity": 15
      },
      {
        "size": "medium",
        "quantity": 24
      },
      {
        "size": "large",
        "quantity": 2
      },
      {
        "size": "xlarge",
        "quantity": 0
      }
    ]
  }
]

الملاحظات

  • إذا لم تكن قيمة الإدخال كائنا صالحا، فإن النتيجة هي undefined.

راجع أيضًا