ObjectToArray (NoSQL-query)
VAN TOEPASSING OP: NoSQL
Converteert elk veld/waardepaar in een JSON-object naar een element en retourneert vervolgens de set elementen als een JSON-matrix. De matrixelementen bevatten standaard een nieuw k
veld voor de naam van het oorspronkelijke veld en een nieuw v
veld voor de waarde van het oorspronkelijke veld. Deze nieuwe veldnamen kunnen verder worden aangepast.
Syntaxis
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Argumenten
Beschrijving | |
---|---|
object_expr |
Een objectexpressie met eigenschappen in veld-/waardeparen. |
string_expr_1 (Optioneel) |
Een tekenreeksexpressie met een naam voor het veld dat het veldgedeelte van het oorspronkelijke veld/waardepaar vertegenwoordigt. |
string_expr_2 (Optioneel) |
Een tekenreeksexpressie met een naam voor het veld dat het waardegedeelte van het oorspronkelijke veld/waardepaar vertegenwoordigt. |
Retourtypen
Een matrix met elementen met twee velden, k
of v
velden met een aangepaste naam.
Voorbeelden
In dit voorbeeld ziet u hoe u een statisch object converteert naar een matrix van veld-/waardeparen met behulp van de standaard k
- en v
id's.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
In dit voorbeeld wordt de veldnaam bijgewerkt om de name
id te gebruiken.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
In dit voorbeeld wordt de waardenaam bijgewerkt om de value
id te gebruiken en de veldnaam gebruikt de key
id.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
In dit laatste voorbeeld wordt een item in een bestaande container gebruikt waarin gegevens worden opgeslagen met behulp van velden in een JSON-object.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
In dit voorbeeld wordt de functie gebruikt om het object op te splitsen in een matrixitem voor elk veld/waardepaar.
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
}
]
}
]
Opmerkingen
- Als de invoerwaarde geen geldig object is, is
undefined
het resultaat .