Перейти к основному содержимому

15.2 Модификация данных в коллекции

Когда вы хотите изменить данные в коллекции, вам необходимо выбрать объекты и применить к ним набор модификаторов.

Выбрать объекты можно двумя способами:

  • указать идентификатор конкретного объекта
  • применить набор фильтров для выборки нескольких объектов (см раздел 15.1)

Модификаторы

Мы используем YAML для формата модификаторов.

- Поле:        path
Тип: string
Описание: Адрес внутри объекта который подвергается модификации.
Если указать "." то модификация будет заменять всё
содержимое объекта
---
- Поле: set
Тип: Expression
Описание: Выражение для вычисления значения

Примечание

Все наборы фильтров начинаются с ключевого слова conditions , а все наборы модификаторов с ключевого слова items

Пример

Представим что у нас есть объект который мы можем получить с помощью следующего фильтра:

conditions:
- operation: equal
query:
field: "object_id"
expected:
value: "5bd4b778-1f7f-4fce-ab89-dd6eb6dfaf98"

Значение объекта:

{
"test": 123
}

Применим модификаторы

items:
- path: "."
set:
value:
a:
b:
id: "123"
- path: "a.b.i"
set:
value: 123
- path: "a.b.s"
set:
value: "string"
- path: "a.b.f"
set:
field: "object_id"
- path: "a.b.p"
set:
path: "a.b.i"

Первый модификатор заменяет все объекты на описанный объект

{
"a": {
"b": {
"id": "123"
}
}
}

Вторым модификатором в объект добавляется значение с типом number

{
"a": {
"b": {
"id": "123",
"i": 123
}
}
}

Третим модификатором в объект добавляется значение с типом string

{
"a": {
"b": {
"id": "123",
"i": 123,
"s": "string"
}
}
}

Четвёртым модификатором в объект добавляется значение с типом string, а в качестве значения берётся значение поля object_id из системной информации об объекте

{
"a": {
"b": {
"id": "123",
"i": 123,
"s": "string",
"f": "aebe4239-0fb9-4e87-9f52-9dc8228467e8"
}
}
}

Пятым модификатором в объект добавляется значение взятое из того же объекта после предыдущих модификаторов

{
"a": {
"b": {
"id": "123",
"i": 123,
"s": "string",
"f": "aebe4239-0fb9-4e87-9f52-9dc8228467e8",
"p": 123
}
}
}

Выражения

- Выражение:   Field
Поле: field
Тип: string
Описание: Это выражение позволяет получить значение поля записи в целом.
Ниже приведены доступные значения для этого выражения:
• object_id
• value
• created_at
---
- Выражение: Path
Поле: path
Тип: string
Описание: Это выражение позволяет заглянуть внутрь значения объекта.
Для просмотра вложенных значений используйте точечный
разделитель.
Примеры:
• a
• a.b
• a.b.c
---
- Выражение: Value
Поле: value
Тип: string, number, array, object, bool
Описание: Это выражение позволяет указать конкретное значение для
дальнейшего сравнения