Все ноды/Data/Database
Записи: найти одну
Первый документ, соответствующий фильтру. Возвращает объект {doc, found}: doc — документ или null, found — нашёлся ли он.
Тип в графе: db_find_one
Exec
Можно включить выход ошибки и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий сценарий
- Исполнение + данные
Запускается сразу
Как применять
Берите эту ноду, когда документ ожидается один: карточка клиента по 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приходит всегда.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Фильтрinput | Исполнение + данныеexecute_data | — | Пришедшее сюда значение ЗАМЕНЯЕТ настроенное в форме — не дополняет его, и обязано быть объектом (значение любой другой формы роняет шаг, а не игнорируется молча). Чтобы запустить шаг и сохранить настроенное, ведите тонкое ребро «исполнение», а переменные части пишите шаблонами {{ }} прямо в поле. |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Результаты поискаoutput | Исполнение + данныеexecute_data | object |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Коллекцияcollection_id | string | "" | ID коллекции |
Фильтрfilter | object | — | Условие отбора в синтаксисе MongoDB. Возвращается первая подходящая запись. перекрывается портом: input |
Какие поля вернутьprojection | object | — | Какие поля вернуть (1 — включить, 0 — исключить). Пусто — все. |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.