Все ноды/Data/Database

БД: вставка

Вставка документа (или массива документов при many=true) в коллекцию NoSQL-стора. Возвращает inserted_ids.

БД: вставка
DocResult

Тип в графе: db_insert

Exec

Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий воркфлоу

Вход
БД: вставка
Выход
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу

Как применять

Вставка добавляет новые документы: заявку из чата, строку журнала, распознанную анкету. Она всегда пишет новое — проверки «а вдруг уже есть» у неё нет. Если запись может уже существовать и повторный запуск не должен плодить дубли, берите db_update с включённым Upsert: он обновит найденный документ или создаст его один раз.

Как это работает

Порт Doc приносит и запуск, и сам документ. Пришёл объект — вставляется он; ничего не пришло — вставляется документ из поля Документ(ы). Массив объектов на порту или в поле означает массовую вставку: форма значения — единственное, что решает, вставляется один документ или несколько, отдельного переключателя нет.

Документом считается объект или строка с JSON-объектом. Текст, число или ответ модели «как есть» роняют ноду: соберите словарь заранее — code_javascript возвращает объект, template выдаёт JSON-объект строкой.

Каждому документу присваивается _id, если его не задали в самом документе. На выходе — inserted_ids (массив идентификаторов, в том же порядке) и count.

Частые ошибки

  • Ждут защиты от дублей. Один и тот же запуск дважды — два документа. Идемпотентная запись делается через db_update с Upsert по уникальному полю.
  • На порт подаётся ответ модели. Строка «Заявка принята» — не документ. Оберните её в объект или попросите модель структурированный вывод.
  • Свой _id берут из ненадёжного источника. Это ключ строки в хранилище: вторая вставка с тем же значением не пройдёт. Либо не задавайте _id вовсе, либо стройте его так, чтобы он не повторялся.
  • Пустой массив принимают за ошибку. Он вставляет ноль документов и отчитывается count: 0 — запуск успешен. Проверяйте count, если пустой список для вас значим.
  • Складывают в коллекцию файлы и длинные тексты. У документа есть предельный размер (по умолчанию 1 МиБ), а у пространства — квота по байтам. Файлы храните в файловом хранилище, а в документе — ссылку.

Входы

ПортПроводДанныеПримечания
DocinputИсполнение + данныеexecute_data

Run trigger and dynamic payload (overrides static config). The payload must be an object — a value of any other shape fails the node instead of being ignored.

Выходы

ПортПроводДанныеПримечания
ResultoutputИсполнение + данныеexecute_dataobject

Настройки

ПолеТипПо умолчаниюОписание
Коллекцияcollection_idstring""

ID коллекции

Документ(ы)docobject | array

Статический документ или список документов для массовой вставки. Значение, пришедшее на входной порт `Doc`, перекрывает это поле.

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.