ObjectToArray (zapytanie NoSQL)
DOTYCZY: NoSQL
Konwertuje każdą parę pól/wartości w obiekcie JSON na element, a następnie zwraca zestaw elementów jako tablicę JSON. Domyślnie elementy tablicy zawierają nowe k
pole dla nazwy oryginalnego pola i nowe v
pole wartości pola oryginalnego. Te nowe nazwy pól można dodatkowo dostosować.
Składnia
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Argumenty
opis | |
---|---|
object_expr |
Wyrażenie obiektu z właściwościami w parach pól/wartości. |
string_expr_1 (Opcjonalnie) |
Wyrażenie ciągu o nazwie pola reprezentującego część pola oryginalnej pary pól/wartości. |
string_expr_2 (Opcjonalnie) |
Wyrażenie ciągu o nazwie pola reprezentującego część wartości oryginalnej pary pól/wartości. |
Typy zwracane
Tablica elementów z dwoma polami lub k
v
polami nazwanymi niestandardowymi.
Przykłady
W tym przykładzie pokazano konwertowanie obiektu statycznego na tablicę par pól/wartości przy użyciu wartości domyślnych k
i v
identyfikatorów.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
W tym przykładzie nazwa pola jest aktualizowana w celu użycia identyfikatora name
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
W tym przykładzie nazwa wartości jest aktualizowana w celu użycia identyfikatora value
, a nazwa pola używa identyfikatora key
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
W tym ostatnim przykładzie użyto elementu w istniejącym kontenerze, który przechowuje dane przy użyciu pól w obiekcie JSON.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
W tym przykładzie funkcja jest używana do podziału obiektu na element tablicy dla każdej pary pól/wartości.
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
}
]
}
]
Uwagi
- Jeśli wartość wejściowa nie jest prawidłowym obiektem, wynik to
undefined
.