Все ноды/Data/Database

БД: найти один

Первый документ, соответствующий фильтру (или null).

БД: найти один
FilterResult

Тип в графе: db_find_one

Exec

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

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

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

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

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

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

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

Берите эту ноду, когда документ ожидается один: карточка клиента по user_id, заказ по номеру, настройка по ключу. Она возвращает готовый объект, а не массив, — дальше по графу не нужен ни цикл, ни обращение по индексу. Если подходящих документов много и важно, какой именно вы получите, берите db_find с сортировкой и лимитом 1: здесь сортировки нет.

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

Порт Фильтр приносит и запуск, и сам фильтр; объект с ребра заменяет фильтр из настроек, пустой триггер оставляет настроенный. Поля Фильтр и Проекция — JSON-редакторы: {{ … }} в них не раскрывается, динамический фильтр собирают нодой template (JSON-объект строкой) или code_javascript (возвращает объект) и подают на порт.

На выходе два поля: doc — сам документ или null, и found — нашёлся ли он. Отсутствие документа это успешный запуск, а не ошибка: ветку «нет такого» рисуют через if по {{ nodes.<id>.output.found }}.

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

  • Ждут ошибку, когда документа нет. Нода отработает успешно с found: false; если ниже по графу нет проверки, дальше поедет null и упадёт уже другая нода — в неожиданном месте.
  • Читают поля до проверки found. Сначала развилка по found, потом {{ nodes.<id>.output.doc.<поле> }}.
  • «Первый» понимают как «новейший». Порядок документов не задан — это тот, в котором их вернуло хранилище. Нужен свежайший — db_find, сортировка [["created_at", -1]], лимит 1.
  • Фильтр подходит нескольким документам. Вы получите один из них, и на следующем запуске это может быть другой. Фильтруйте по полю, которое действительно уникально.
  • Смешанная проекция. Одновременно включать (1) и исключать (0) поля нельзя — запрос отвергается. При включающей проекции _id приходит всегда.

Входы

ПортПроводДанныеПримечания
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

Проекцияprojectionobject

Общие поля

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

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