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
.