Все ноды/Data/Database
Записи: добавить
Вставка документа (или массива документов — тогда пакетная вставка) в коллекцию NoSQL-стора. Возвращает inserted_ids.
Тип в графе: db_insert
Exec
Можно включить выход ошибки и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий сценарий
- Исполнение + данные
Запускается сразу
Как применять
Вставка добавляет новые документы: заявку из чата, строку журнала, распознанную анкету. Она всегда пишет новое — проверки «а вдруг уже есть» у неё нет. Если запись может уже существовать и повторный запуск не должен плодить дубли, берите db_update с включённым полем Создать, если нет: он обновит найденный документ или создаст его один раз.
Как это работает
Порт Документ приносит и запуск, и сам документ. Пришёл объект — вставляется он; ничего не пришло — вставляется документ из поля Документ(ы). Массив объектов на порту или в поле означает массовую вставку: форма значения — единственное, что решает, вставляется один документ или несколько, отдельного переключателя нет.
Документом считается объект или строка с JSON-объектом. Текст, число или ответ модели «как есть» роняют ноду: соберите словарь заранее — code_javascript возвращает объект, template выдаёт JSON-объект строкой.
Каждому документу присваивается _id, если его не задали в самом документе. На выходе — inserted_ids
(массив идентификаторов, в том же порядке) и count.
Частые ошибки
- Ждут защиты от дублей. Один и тот же запуск дважды — два документа. Идемпотентная запись делается через db_update с полем Создать, если нет по уникальному ключу.
- На порт подаётся ответ модели. Строка «Заявка принята» — не документ. Оберните её в объект или попросите модель структурированный вывод.
- Свой
_idберут из ненадёжного источника. Это ключ строки в хранилище: вторая вставка с тем же значением не пройдёт. Либо не задавайте_idвовсе, либо стройте его так, чтобы он не повторялся. - Пустой массив принимают за ошибку. Он вставляет ноль документов и отчитывается
count: 0— запуск успешен. Проверяйтеcount, если пустой список для вас значим. - Складывают в коллекцию файлы и длинные тексты. У документа есть предельный размер (по умолчанию 1 МиБ), а у пространства — квота по байтам. Файлы храните в файловом хранилище, а в документе — ссылку.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Документinput | Исполнение + данныеexecute_data | — | Пришедшее сюда значение ЗАМЕНЯЕТ настроенное в форме — не дополняет его. Это объект или список объектов (список вставляется пачкой); значение любой другой формы роняет шаг, а не игнорируется молча. Чтобы запустить шаг и сохранить настроенное, ведите тонкое ребро «исполнение», а переменные части пишите шаблонами {{ }} прямо в поле. |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Итог действияoutput | Исполнение + данныеexecute_data | object |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Коллекцияcollection_id | string | "" | ID коллекции |
Документыdoc | object | array | — | Статический документ или список документов для массовой вставки. Значение, пришедшее на входной порт `Doc`, перекрывает это поле. перекрывается портом: input |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.
Готовые примеры с этой нодой
- Напоминание за час до встречи, и ровно одно
- Чего не хватает в документах, копится само
- Каждый разговор ложится в таблицу сводкой
- Заявка с почты ложится строкой в таблицу
- Заказ живёт в таблице между запусками
- Фото чека превращается в строку расходов
- «Напомни в пятницу», и в пятницу напомнит
- Отзывы разбираются по тону и теме
- Список покупок, который бот держит за вас
- Заявка с формы разобрана, записана, подтверждена