ObjectToArray (NoSQL-lekérdezés)
A KÖVETKEZŐKRE VONATKOZIK: NoSQL
Egy JSON-objektum minden mező/érték párját elemzé alakítja, majd JSON-tömbként adja vissza az elemek halmazát. Alapértelmezés szerint a tömbelemek új k
mezőt tartalmaznak az eredeti mező nevének és az eredeti mező értékének új v
mezőjéhez. Ezek az új mezőnevek tovább testre szabhatók.
Szintaxis
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 jelölő mező nevével. |
string_expr_2 (Nem kötelező) |
Egy sztringkifejezés, amelynek neve az eredeti mező/érték pár értékrészét jelöli. |
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, hogy az value
azonosítót használja, a mezőnév pedig az azonosítót key
.
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 objektumot tömbelemre bontja az egyes mező-érték pá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 .
undefined