bag_set_key()
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
bag_set_key() получает dynamic
контейнер свойств, ключ и значение. Функция задает заданный ключ в контейнере заданному значению. Функция переопределяет любое существующее значение в случае, если ключ уже существует.
Синтаксис
bag_set_key(
Значение ключаконтейнера,
,
)
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
контейнер | dynamic |
✔️ | Пакет свойств для изменения. |
key | string |
✔️ | Ключ для задания. Путь JSON (можно указать ключ на вложенных уровнях с помощью нотации JSONPath ) или имя ключа для корневого ключа уровня. Индексирование массива или корневые пути JSON не поддерживаются. |
значение | любой скалярный тип данных | ✔️ | Значение, для которого задан ключ. |
Возвраты
dynamic
Возвращает контейнер свойств с указанными парами "ключ-значение". Если входной контейнер не является контейнером свойств, null
возвращается значение.
Примечание.
Чтобы рассматривать null
s как пустые сумки, используйте coalesce(x, dynamic({}))
.
Примеры
Использование ключа корневого уровня
datatable(input: dynamic) [
dynamic({'key1': 1, 'key2': 2}),
dynamic({'key1': 1, 'key3': 'abc'}),
]
| extend result = bag_set_key(input, 'key3', 3)
input | result |
---|---|
{ "key1": 1, "key2": 2 } |
{ "key1": 1, "key2": 2, "key3": 3 } |
{ "key1": 1, "key3": "abc" } |
{ "key1": 1, "key3": 3 } |
Использование ключа JSONPath
datatable(input: dynamic)[
dynamic({'key1': 123, 'key2': {'prop1': 123, 'prop2': 'xyz'}}),
dynamic({'key1': 123})
]
| extend result = bag_set_key(input, '$.key2.prop1', 'abc')
input | result |
---|---|
{ "key1": 123, "key2": { "prop1": 123, "prop2": "xyz" } } |
{ "key1": 123, "key2": { "prop1": "abc", "prop2": "xyz" } } |
{ "key1": 123 } |
{ "key1": 123, "key2": { "prop1": "abc" } } |