ObjectToArray (запрос NoSQL)
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Преобразует каждую пару полей и значений в объект JSON в элемент, а затем возвращает набор элементов в виде массива JSON. По умолчанию элементы массива содержат новое k
поле для имени исходного поля и новое v
поле для значения исходного поля. Эти новые имена полей можно дополнительно настроить.
Синтаксис
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Аргументы
Description | |
---|---|
object_expr |
Выражение объекта со свойствами в парах полей и значений. |
string_expr_1 (Необязательно) |
Строковое выражение с именем поля, представляющего часть поля исходной пары полей и значений. |
string_expr_2 (Необязательно) |
Строковое выражение с именем поля, представляющего часть значения исходной пары полей и значений. |
Типы возвращаемых данных
Массив элементов с двумя полями k
или v
настраиваемыми полями.
Примеры
В этом примере показано преобразование статического объекта в массив пар полей и значений с помощью идентификаторов по умолчанию k
и v
идентификаторов.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
В этом примере имя поля обновляется для использования идентификатора name
.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
В этом примере имя значения обновляется для использования идентификатора value
, а имя поля использует key
идентификатор.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
В этом последнем примере используется элемент в существующем контейнере, в который хранятся данные с помощью полей в объекте JSON.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
В этом примере функция используется для разбиения объекта в элемент массива для каждой пары полей и значений.
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
}
]
}
]
Замечания
- Если входное значение не является допустимым объектом, результатом является
undefined
.