ObjectToArray (requête NoSQL)
S’APPLIQUE À : NoSQL
Convertit chaque paire champ/valeur d’un objet JSON en élément, puis retourne l’ensemble d’éléments sous forme de tableau JSON. Par défaut, les éléments de tableau contiennent un nouveau k
champ pour le nom du champ d’origine et un nouveauv
champ pour la valeur du champ d’origine. Ces nouveaux noms de champs peuvent être davantage personnalisés.
Syntaxe
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Arguments
Description | |
---|---|
object_expr |
Expression d’objet avec des propriétés dans des paires champ/valeur. |
string_expr_1 (Facultatif) |
Expression de chaîne avec un nom pour le champ représentant la partie champ de la paire champ/valeur d’origine. |
string_expr_2 (Facultatif) |
Expression de chaîne avec un nom pour le champ représentant la partie valeur de la paire champ/valeur d’origine. |
Types de retour
Tableau d’éléments avec deux champs, k
et v
ou des champs nommés sur mesure.
Exemples
Cet exemple illustre la conversion d’un objet statique en tableau de paires champ/valeur à l’aide des identificateurs par défaut k
et v
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
Dans cet exemple, le nom du champ est mis à jour pour utiliser l’identificateur name
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
Dans cet exemple, le nom de la valeur est mis à jour pour utiliser l’identificateur value
et le nom de champ utilise l’identificateur key
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
Cet exemple final utilise un élément dans un conteneur existant qui stocke des données à l’aide de champs dans un objet JSON.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
Dans cet exemple, la fonction est utilisée pour diviser l’objet en un élément de tableau pour chaque paire champ/valeur.
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
}
]
}
]
Notes
- Si la valeur de l’entrée n’est pas un objet valide, le résultat est
undefined
.