ObjectToArray (query NoSQL)
SI APPLICA A: NoSQL
Converte ogni coppia campo/valore in un oggetto JSON in un elemento e quindi restituisce il set di elementi come matrice JSON. Per impostazione predefinita, gli elementi della matrice contengono un nuovo k
campo per il nome del campo originale e un nuovo v
campo per il valore del campo originale. Questi nuovi nomi di campo possono essere ulteriormente personalizzati.
Sintassi
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Argomenti
Descrizione | |
---|---|
object_expr |
Espressione oggetto con proprietà nelle coppie campo/valore. |
string_expr_1 (opzionale) |
Espressione stringa con un nome per il campo che rappresenta la parte del campo della coppia campo/valore originale. |
string_expr_2 (opzionale) |
Espressione stringa con un nome per il campo che rappresenta la parte del valore della coppia campo/valore originale. |
Tipi restituiti
Matrice di elementi con due campi, k
e v
o con nomi personalizzati.
Esempi
In questo esempio viene illustrata la conversione di un oggetto statico in una matrice di coppie campo/valore usando gli identificatori e v
predefinitik
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
In questo esempio il nome del campo viene aggiornato per usare l'identificatore name
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
In questo esempio, il nome del valore viene aggiornato per usare l'identificatore value
e il nome del campo usa l'identificatore key
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
Questo esempio finale usa un elemento all'interno di un contenitore esistente che archivia i dati usando campi all'interno di un oggetto JSON.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
In questo esempio, la funzione viene usata per suddividere l'oggetto in un elemento di matrice per ogni coppia campo/valore.
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
}
]
}
]
Osservazioni:
- Se il valore di input non è un oggetto valido, il risultato è
undefined
.