Все ноды/Data/Database
БД: удаление
Удаляет документы по фильтру. multi=true удаляет все совпадения.
Тип в графе: db_delete
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
Запускается сразу
Как применять
Удаление снимает документы из коллекции насовсем: восстановления, корзины и истории правок здесь нет.
Поэтому в рабочих сценариях чаще нужен не он, а «мягкое» удаление — db_update
с {"$set": {"deleted": true}} и фильтр по этому полю в чтениях: так остаются и данные для отчётов, и
возможность передумать. Настоящее удаление берут для служебных задач: очистка временных записей,
удаление данных по запросу пользователя, сброс коллекции перед прогоном.
Как это работает
Порт Фильтр приносит и запуск, и сам фильтр. Пришёл объект — удаляется по нему; ничего не пришло — работает фильтр из поля. Значение неподходящей формы роняет ноду: это сделано именно ради этой ноды — тихий откат к настроенному фильтру превратил бы опечатку в «удалить всё».
Флаг Удалить много решает, сколько документов уйдёт: с выключенным удаляется ровно один из
подошедших, и какой именно — не определено. На выходе deleted — сколько документов удалено.
Частые ошибки
- Полагаются на то, что удалять нечего.
deleted: 0— это успех, а не ошибка. Если по вашему сценарию документ обязан был найтись, проверьте счётчик if-ом. - Фильтр приезжает «сам». Ребро в порт несёт значение предыдущей ноды, и подходящий по форме, но не тот объект удалит не те документы. Подавайте фильтр явно — template с JSON-объектом или code_javascript — либо разделите порты и заведите в ноду только исполнение, оставив фильтр из настроек.
- Удаляют по неуникальному полю без флага. Без Удалить много уйдёт один документ из десяти подходящих, и запуск отчитается успехом.
- Шаблоны в поле фильтра.
{{ … }}в JSON-редакторе не раскрывается и сравнивается как обычная строка — фильтр просто ничего не найдёт. - Забывают про счётчики места. Освободившиеся байты возвращаются в квоту пространства сразу, но сами документы уже не вернуть — резервную копию нужной выборки делают заранее db_find + записью в файл.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Filterinput | Исполнение + данные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 коллекции |
Фильтрfilter | object | — | |
Удалить многоmulti | boolean | false |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.