Интеграция с MongoDB: поиск, создание, обновление и удаление записей

Интеграция с MongoDB в nana800 ищет, создаёт, обновляет и удаляет записи в вашей базе MongoDB или Atlas прямо из схемы, без своего сервера и драйверов. Вы выбираете операцию из списка, указываете коллекцию и пишете фильтр и данные в JSON. Каждая операция стоит 0,20 ₽, а баланс каждый месяц бесплатно пополняется до 350 ₽.

Собрать в конструкторе
  • Запуск блока: 0,20 ₽
  • Бесплатно каждый месяц: 350 ₽
  • Карта не нужна

Что можно сделать

  • Сохранять заявки с сайта, заказы и сообщения боту записями в коллекцию, по одной или списком
  • Находить одну запись или до 1000 записей за запуск по фильтру, с сортировкой и чтением по страницам
  • Обновлять нужные поля записей через $set и другие операторы MongoDB, остальные поля не меняются
  • Удалять одну или все подходящие записи, причём случайно стереть всю коллекцию пустым фильтром нельзя
  • Искать по идентификатору и по датам: в фильтре они пишутся как $oid и $date
  • Собрать свой REST API к базе из готового шаблона: вебхук принимает запрос, блок MongoDB выполняет операцию, ответ уходит обратно

Блоки в конструкторе

  • Операция с базой MongoDB

    Действие · 0,20 ₽ за запуск

    Одна из восьми операций на выбор: FIND_ONE и FIND_MANY ищут, CREATE_ONE и CREATE_MANY создают, UPDATE_ONE и UPDATE_MANY обновляют, DELETE_ONE и DELETE_MANY удаляют записи. Возвращает записи, их число и текст ошибки.

Как настроить

  1. 1

    Возьмите строку подключения

    В панели Atlas или вашего провайдера скопируйте строку вида mongodb+srv://логин:пароль@cluster0.xxxxx.mongodb.net/имя_базы. Особые символы в пароле замените кодами, например @ на %40. База должна быть доступна из интернета: база на вашем компьютере (localhost) или во внутренней сети не подойдёт.

  2. 2

    Создайте схему и добавьте триггер

    В конструкторе создайте схему и поставьте триггер, который принесёт данные: «webhook» для заявок с сайта, сообщение боту в Telegram или запуск по расписанию. Для первой проверки хватит триггера «button», он запускает схему вручную.

  3. 3

    Настройте блок MongoDB

    Добавьте блок «Mongodb Database external operation», вставьте строку подключения и название коллекции, например orders. Выберите операцию: CREATE_ONE для новой записи, FIND_ONE или FIND_MANY для поиска, UPDATE_ONE для правки, DELETE_ONE для удаления.

  4. 4

    Опишите фильтр и данные

    В «Фильтре» укажите в JSON, какие записи нужны, например {"status": "new"} или номер заказа из триггера. В «Данных для записи» положите новую запись, а для обновления используйте оператор $set. Чтобы обновить или удалить все записи, фильтр {} нужно написать явно.

  5. 5

    Включите и проверьте схему

    Включите схему, нажмите кнопку в триггере «button» и откройте результат блока: в result лежат записи, в count их число, а при ошибке в error_text будет понятное описание. Когда всё работает, оставьте схему включённой. Пока она включена, она стоит 0,42 ₽ в час.

Шаблоны с этим сервисом

  • REST API для MongoDB

    Шаблон nana800: вебхук принимает запрос, блок MongoDB ищет, создаёт, обновляет или удаляет записи в вашей базе и возвращает результат. Бесплатный баланс каждый месяц.

Частые вопросы

Каждая операция с базой стоит 0,20 ₽. Включённая схема стоит 0,42 ₽ в час. Баланс каждый месяц бесплатно пополняется до 350 ₽, карта не нужна. Если схема включена круглосуточно весь месяц, большая часть этой суммы уходит на часы работы схемы.

Да, блок принимает строки mongodb+srv:// от Atlas и обычные mongodb:// от своего сервера. В Atlas разрешите подключения из интернета в настройках сетевого доступа. Вход только по логину и паролю: прокси, файлы сертификатов и вход через AWS, OIDC или Kerberos не поддерживаются.

FIND_MANY отдаёт от 1 до 1000 записей, по умолчанию 100. Если подходящих записей больше, в ответе has_more будет true: следующую страницу читайте с пропуском 100, потом 200 и так далее. Весь ответ блока должен уложиться в 5 МБ, иначе уменьшите лимит или сузьте фильтр.

Идентификатор пишется как {"_id": {"$oid": "..."}}, дата как {"$date": "2025-01-01T00:00:00Z"}. В результате блок отдаёт их обычным текстом: _id строкой из 24 символов, дату в формате ISO, так их удобно передавать в другие блоки.

Пустой фильтр при обновлении и удалении блок не принимает. Чтобы затронуть все записи, нужно явно написать {}. Текст из других блоков внутри кавычек в JSON экранируется, поэтому значение из формы не добавит в фильтр лишних условий.

Код писать не нужно, но фильтр и данные задаются в JSON, как в самой MongoDB. Для старта есть шаблон «Simple REST API with MongoDB»: в нём уже связаны вебхук, блок MongoDB и ответ на запрос, остаётся вставить строку подключения и выбрать операцию.

Соберите первую схему бесплатно

Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.

Собрать в конструкторе