ObjectToArray (NoSQL-fråga)
GÄLLER FÖR: NoSQL
Konverterar varje fält/värde-par i ett JSON-objekt till ett element och returnerar sedan uppsättningen element som en JSON-matris. Som standard innehåller matriselementen ett nytt k
fält för det ursprungliga fältets namn och ett nytt v
fält för det ursprungliga fältets värde. Dessa nya fältnamn kan anpassas ytterligare.
Syntax
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Argument
beskrivning | |
---|---|
object_expr |
Ett objektuttryck med egenskaper i fält/värde-par. |
string_expr_1 (Valfritt) |
Ett stränguttryck med ett namn för fältet som representerar fältdelen av det ursprungliga fältet/värdeparet. |
string_expr_2 (Valfritt) |
Ett stränguttryck med ett namn för fältet som representerar värdedelen i det ursprungliga fältet/värdeparet. |
Returtyper
En matris med element med två fält, antingen k
och v
eller anpassade namngivna fält.
Exempel
Det här exemplet visar hur du konverterar ett statiskt objekt till en matris med fält/värde-par med standard k
- och v
identifierare.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
I det här exemplet uppdateras fältnamnet för att använda identifieraren name
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
I det här exemplet uppdateras värdenamnet för att använda identifieraren value
och fältnamnet använder identifieraren key
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
Det här sista exemplet använder ett objekt i en befintlig container som lagrar data med hjälp av fält i ett JSON-objekt.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
I det här exemplet används funktionen för att dela upp objektet i ett matrisobjekt för varje fält/värde-par.
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
}
]
}
]
Kommentarer
- Om indatavärdet inte är ett giltigt objekt blir
undefined
resultatet .