ObjectToArray (NoSQL-lekérdezés)
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Egy JSON-objektumban lévő mező-érték párokat elemzé alakítja, majd JSON-tömbként adja vissza az elemek készletét. A tömbelemek alapértelmezés szerint egy új k
mezőt tartalmaznak az eredeti mező nevének és az eredeti mező értékének új v
mezőjét. Ezek az új mezőnevek tovább testre szabhatók.
Syntax
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Argumentumok
Leírás | |
---|---|
object_expr |
Objektumkifejezés mező-érték párokban lévő tulajdonságokkal. |
string_expr_1 (Nem kötelező) |
Sztringkifejezés az eredeti mező/érték pár mezőrészét képviselő mező nevével. |
string_expr_2 (Nem kötelező) |
Sztringkifejezés az eredeti mező/érték pár értékrészét képviselő mező nevével. |
Visszatérési típusok
Elemek tömbje két mezővel, vagy k
v
egyéni névvel ellátott mezőkkel.
Példák
Ez a példa azt mutatja be, hogy egy statikus objektumot az alapértelmezett k
és v
azonosítók használatával mező-érték párok tömbjére konvertál.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
Ebben a példában a mező neve frissül az name
azonosító használatára.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
Ebben a példában az érték neve frissül az value
azonosító használatára, a mezőnév pedig az azonosítót key
használja.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
Ez az utolsó példa egy meglévő tárolóban lévő elemet használ, amely egy JSON-objektum mezőivel tárolja az adatokat.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
Ebben a példában a függvény az objektum tömbelemre való felosztására szolgál az egyes mezők/értékpárok esetében.
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
}
]
}
]
Megjegyzések
- Ha a bemeneti érték nem érvényes objektum, az eredmény az .
undefined