Все ноды/Data/Database
БД: вставка
Вставка документа (или массива документов при many=true) в коллекцию NoSQL-стора. Возвращает inserted_ids.
Тип в графе: db_insert
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
Запускается сразу
Как применять
Вставка добавляет новые документы: заявку из чата, строку журнала, распознанную анкету. Она всегда пишет новое — проверки «а вдруг уже есть» у неё нет. Если запись может уже существовать и повторный запуск не должен плодить дубли, берите 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_data | object |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Коллекцияcollection_id | string | "" | ID коллекции |
Документ(ы)doc | object | array | — | Статический документ или список документов для массовой вставки. Значение, пришедшее на входной порт `Doc`, перекрывает это поле. |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.