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
.