ObjectToArray (dotaz NoSQL)
PLATÍ PRO: NoSQL
Převede každou dvojici polí a hodnot v objektu JSON na prvek a pak vrátí sadu prvků jako pole JSON. Ve výchozím nastavení prvky pole obsahují nové k
pole pro název původního pole a nové v
pole pro hodnotu původního pole. Tyto nové názvy polí je možné dále přizpůsobit.
Syntaxe
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Argumenty
Popis | |
---|---|
object_expr |
Výraz objektu s vlastnostmi v párech polí a hodnot. |
string_expr_1 (Volitelné) |
Řetězcový výraz s názvem pole představující část původní dvojice pole/hodnota. |
string_expr_2 (Volitelné) |
Řetězcový výraz s názvem pole představujícího část hodnoty původní dvojice pole/hodnoty. |
Návratové typy
Pole prvků se dvěma poli, a to buď k
a v
nebo vlastními pojmenovanými poli.
Příklady
Tento příklad ukazuje převod statického objektu na pole párů polí a hodnot pomocí výchozích k
a v
identifikátorů.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
V tomto příkladu se název pole aktualizuje tak, aby používal name
identifikátor.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
V tomto příkladu se název hodnoty aktualizuje tak, aby používal value
identifikátor a název pole tento identifikátor používá key
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
V posledním příkladu se používá položka v existujícím kontejneru, která ukládá data pomocí polí v objektu JSON.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
V tomto příkladu se funkce používá k rozdělení objektu na maticovou položku pro každou dvojici polí a hodnot.
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
}
]
}
]
Poznámky
- Pokud vstupní hodnota není platným objektem, výsledek je
undefined
.