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
- System functions (Funciones del sistema)
IS_ARRAY