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

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

image_1

Описание

Блок выполняет запрос к базе данных MongoDB.


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

Блок имеет несколько основных параметров:

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

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

    Пример: db_session

  2. Имя базы данных - имя базы данных;

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

    Пример: my_database

  3. Имя коллекции - имя коллекции;

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

    Пример: my_collection

  4. Данные - данные для вставки, выборки, обновления или удаления;

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

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

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

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

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

  7. Множественный поиск - множественный поиск;

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

    Пример: True


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

  • 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

Вставка нескольких документов

image_3

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

Поиск одного документа

image_4

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

Поиск нескольких документов

image_5

После успешного выполнения блока, возвращается список документов: [{"_id": "507f1f77bcf86cd799439011", "name": "Иван", "age": 30}, {"_id": "507f1f77bcf86cd799439012", "name": "Мария", "age": 25}]

Обновление одного документа

image_6

После успешного выполнения блока, возвращается документ: {"matched_count": 1, "modified_count": 1}

Обновление нескольких документов

image_7

После успешного выполнения блока, возвращается документ: {"matched_count": 5, "modified_count": 3}

Удаление одного документа

image_8

После успешного выполнения блока, возвращается документ: {"deleted_count": 1}

Удаление нескольких документов

image_9

После успешного выполнения блока, возвращается документ: {"deleted_count": 3}

Поиск по _id

image_10

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