Все ноды/Data/Database

БД: удаление

Удаляет документы по фильтру. multi=true удаляет все совпадения.

БД: удаление
FilterResult

Тип в графе: db_delete

Exec

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

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

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

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

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

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

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

Удаление снимает документы из коллекции насовсем: восстановления, корзины и истории правок здесь нет. Поэтому в рабочих сценариях чаще нужен не он, а «мягкое» удаление — 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_dataobject

Настройки

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

ID коллекции

Фильтрfilterobject

Удалить многоmultibooleanfalse

Общие поля

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

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