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
Описание: Это выражение позволяет указать конкретное значение для
дальнейшего сравнения