ObjectToArray (NoSQL-Abfrage)

GILT FÜR: NoSQL

Wandelt jedes Feld/Wert-Paar in einem JSON-Objekt in ein Element um und gibt dann die Menge der Elemente als JSON-Array zurück. Standardmäßig enthalten die Array-Elemente ein neues Feld k für den Namen des ursprünglichen Feldes und ein neues Feld v für den Wert des ursprünglichen Feldes. Diese neuen Feldnamen können weiter angepasst werden.

Syntax

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

Argumente

BESCHREIBUNG
object_expr Ein Objektausdruck mit Eigenschaften in Feld/Wert-Paaren.
string_expr_1(Optional) Ein Zeichenfolgenausdruck mit einem Namen für das Feld, das den Feldteil des ursprünglichen Feld/Wert-Paares darstellt.
string_expr_2(Optional) Ein Zeichenfolgenausdruck mit einem Namen für das Feld, das den Wertteil des ursprünglichen Feld/Wert-Paares darstellt.

Rückgabetypen

Ein Array von Elementen mit zwei Feldern, entweder k und v oder benutzerdefinierten Feldern.

Beispiele

Dieses Beispiel demonstriert die Konvertierung eines statischen Objekts in ein Array von Feld/Wert-Paaren unter Verwendung der Standardbezeichner k und v.

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

In diesem Beispiel wird der Feldname aktualisiert, um den Bezeichner name zu verwenden.

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

In diesem Beispiel wird der Wertname aktualisiert, um den Bezeichner value zu verwenden. Der Feldname verwendet den Bezeichner key.

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

In diesem letzten Beispiel wird ein Element innerhalb eines bestehenden Containers verwendet, das Daten mithilfe von Feldern innerhalb eines JSON-Objekts speichert.

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

In diesem Beispiel wird die Funktion verwendet, um das Objekt in ein Array-Element für jedes Feld/Wert-Paar aufzulösen.

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
      }
    ]
  }
]

Bemerkungen

  • Wenn der Eingabewert kein gültiges Objekt ist, ist das Ergebnis undefined.

Weitere Informationen