Compartilhar via


ObjectToArray (consulta NoSQL)

APLICA-SE A: NoSQL

Converte cada par campo/valor em um objeto JSON em um elemento e retorna o conjunto de elementos como uma matriz JSON. Por padrão, os elementos da matriz contêm um novo campo k para o nome do campo original e um novo campo v para o valor do campo original. Esses novos nomes de campo podem ser personalizados ainda mais.

Sintaxe

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

Argumentos

Descrição
object_expr Uma expressão de objeto com propriedades em pares de campo/valor.
string_expr_1(Opcional) Uma expressão de cadeia de caracteres com um nome para o campo que representa a parte do campo do par campo/valor original.
string_expr_2(Opcional) Uma expressão de cadeia de caracteres com um nome para o campo que representa a parte do valor do par campo/valor original.

Tipos de retorno

Uma matriz de elementos com dois campos, k e v ou campos de nome personalizado.

Exemplos

Este exemplo demonstra a conversão de um objeto estático em uma matriz de pares de campo/valor usando os identificadores padrão k e v.

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

Neste exemplo, o nome do campo é atualizado para usar o identificador name.

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

Neste exemplo, o nome do valor é atualizado para usar o identificador value e o nome do campo usa o identificador key.

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

Este exemplo final usa um item dentro de um contêiner existente que armazena dados usando campos dentro de um objeto JSON.

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

Neste exemplo, a função é usada para dividir o objeto em um item de matriz para cada par 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
      }
    ]
  }
]

Comentários

  • Se o valor de entrada não for um objeto válido, o resultado será undefined.

Confira também