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 kchamp 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.

Voir aussi