Перейти к содержимому

Выполнить запрос к MongoDB

image_1

Описание

Блок выполняет запросы к MongoDB через уже созданное подключение. Поддерживаются операции вставки, поиска, обновления и удаления документов.


Описание параметров

Блок имеет ряд параметров:

  1. Использовать подключение к базе данных - переменная с активным подключением к MongoDB.

    Тип данных: object (Объект подключения)

    Пример: db_session

  2. Имя базы данных - название базы данных MongoDB.

    Тип данных: str (Строка)

    Пример: my_database

  3. Имя коллекции - название коллекции, с которой выполняется операция.

    Тип данных: str (Строка)

    Пример: my_collection

  4. Данные - данные для вставки или обновления. В зависимости от операции может быть словарём, списком или ничто.

    Тип данных: dict (Словарь)| list (Список)| None (Ничто)

    Пример: {"name": "John", "age": 30}

  5. Тип операции - действие над данными: insert, find, update или delete.

    Тип данных: str (Строка)

    Пример: find

    1. insert - вставка данных;
    2. find - поиск данных;
    3. update - обновление данных;
    4. delete - удаление данных;
  6. Фильтр - условие выборки, обновления или удаления документов.

    Тип данных: dict (Словарь)

    Пример: {"name": "John"}

  7. Множественный поиск - включает обработку сразу нескольких документов.

    Тип данных: checkbox (Чекбокс)

    Пример:

Возвращаемые значения

  • insert (Множественный поиск=Истина) — возвращает строку str с _id вставленного документа.
  • insert (Множественный поиск=Ложь) — возвращает список list[str] с _id всех вставленных документов.
  • find (Множественный поиск=Ложь) — возвращает dict с документом или None, если документ не найден.
  • find (Множественный поиск=Истина) — возвращает список list[dict] документов (может быть пустым списком).
  • update (Множественный поиск=Ложь/Истина) — возвращает словарь {"matched_count": int, "modified_count": int}.
  • delete (Множественный поиск=Ложь/Истина) — возвращает словарь {"deleted_count": int}.

Описание возможных фильтров в MongoDB

Ниже приведены наиболее часто используемые операторы фильтрации, которые можно указывать в параметре фильтра:

  • $eq: равно значению. Пример: { "age": { "$eq": 30 } }
  • $ne: не равно значению. Пример: { "status": { "$ne": "active" } }
  • $gt: больше чем. Пример: { "age": { "$gt": 18 } }
  • $gte: больше либо равно. Пример: { "age": { "$gte": 18 } }
  • $lt: меньше чем. Пример: { "age": { "$lt": 65 } }
  • $lte: меньше либо равно. Пример: { "age": { "$lte": 65 } }
  • $in: значение входит в список. Пример: { "status": { "$in": ["active", "pending"] } }
  • $nin: значение не входит в список. Пример: { "status": { "$nin": ["archived"] } }
  • $and: логическое И над условиями. Пример: { "$and": [{"age": {"$gte": 18}}, {"city": "Москва"}] }
  • $or: логическое ИЛИ над условиями. Пример: { "$or": [{"role": "admin"}, {"role": "editor"}] }
  • $exists: поле существует/не существует. Пример: { "email": { "$exists": true } }
  • $regex: регулярное выражение для строк. Пример: { "name": { "$regex": "^Ив", "$options": "i" } }

Операторы можно комбинировать, например: { "$and": [{"age": {"$gte": 18}}, {"status": {"$ne": "blocked"}}] }.


Примеры использования

В данных примерах выполняются различные операции с базой данных MongoDB:

Вставка одного документа

image_2

Результат

После успешного выполнения блока, возвращается _id вставленного документа: 507f1f77bcf86cd799439011