Nodul LogoNodul
База данных

Изменение данных в коллекции

Здесь описан формат модификаторов в YAML для поля Updater в узле Update objects (ключ items). Пошагово по всем узлам базы и с живым примером объекта см. Основы работы с базой данных.

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

Есть два способа выбора объектов

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

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

Формат модификаторов задаётся в YAML.

- Field:        path
  Type:         string
  Description:  Путь внутри объекта, который изменяется.
                Если указать ".", то изменение заменит всё
                содержимое объекта.
---
- Field:        set
  Type:         Expression
  Description:  Выражение для вычисления значения.

Примечание

Все наборы фильтров начинаются с ключевого слова 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
    }
  }
}

Выражения

В этом разделе перечислены выражения, которые можно использовать в условиях.

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