Comparteix a través de


ObjectToArray (consulta NoSQL)

SE APLICA A: NoSQL

Convierte cada par de campo/valor en un objeto JSON en un elemento y, a continuación, devuelve el conjunto de elementos como una matriz JSON. De forma predeterminada, los elementos de matriz contienen un nuevo campo k para el nombre del campo original y un nuevo campo v para el valor del campo original. Estos nuevos nombres de campo pueden personalizarse aún más.

Sintaxis

ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])

Argumentos

Descripción
object_expr Una expresión de un objeto con propiedades en pares de campo/valor.
string_expr_1(Opcional) Una expresión de una cadena con un nombre para el campo que representa la parte del campo del par campo/valor original.
string_expr_2(Opcional) Una expresión de una cadena con un nombre para el campo que representa la parte del valor del par campo/valor original.

Tipos de valores devueltos

Una matriz de elementos con dos campos, ya sean k y v o campos con nombre personalizado.

Ejemplos

En este ejemplo se muestra cómo convertir un objeto estático en una matriz de pares de campo/valor mediante los identificadores predeterminados k y v.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    })
[
  [
    {
      "k": "a",
      "v": "12345"
    },
    {
      "k": "b",
      "v": "67890"
    }
  ]
]

En este ejemplo, el nombre del campo se actualiza para usar el identificador name.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    }, "name")
[
  [
    {
      "name": "a",
      "v": "12345"
    },
    {
      "name": "b",
      "v": "67890"
    }
  ]
]

En este ejemplo, el nombre del valor se actualiza para usar el identificador value y el nombre del campo usa el identificador key.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    }, "key", "value")
[
  [
    {
      "key": "a",
      "value": "12345"
    },
    {
      "key": "b",
      "value": "67890"
    }
  ]
]

En este ejemplo final se usa un elemento dentro de un contenedor existente que almacena los datos mediante campos dentro de un objeto JSON.

[
  {
    "name": "Witalica helmet",
    "category": "sport-helmets",
    "quantities": {
      "small": 15,
      "medium": 24,
      "large": 2,
      "xlarge": 0
    }
  }
]

En este ejemplo, la función se usa para dividir el objeto en un elemento de matriz para cada par de campo/valor.

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
      }
    ]
  }
]

Comentarios

  • Si el valor de entrada no es un objeto válido, el resultado es undefined.

Consulte también