Выполнить запрос к MongoDB
Описание
Блок выполняет запросы к MongoDB через уже созданное подключение. Поддерживаются операции вставки, поиска, обновления и удаления документов.
Описание параметров
Блок имеет ряд параметров:
-
Использовать подключение к базе данных - переменная с активным подключением к MongoDB.
Тип данных:
object (Объект подключения)Пример:
db_session -
Имя базы данных - название базы данных MongoDB.
Тип данных:
str (Строка)Пример:
my_database -
Имя коллекции - название коллекции, с которой выполняется операция.
Тип данных:
str (Строка)Пример:
my_collection -
Данные - данные для вставки или обновления. В зависимости от операции может быть словарём, списком или
ничто.Тип данных:
dict (Словарь)| list (Список)| None (Ничто)Пример:
{"name": "John", "age": 30} -
Тип операции - действие над данными:
insert,find,updateилиdelete.Тип данных:
str (Строка)Пример:
findinsert- вставка данных;find- поиск данных;update- обновление данных;delete- удаление данных;
-
Фильтр - условие выборки, обновления или удаления документов.
Тип данных:
dict (Словарь)Пример:
{"name": "John"} -
Множественный поиск - включает обработку сразу нескольких документов.
Тип данных:
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:
Вставка одного документа

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

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

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

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

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

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

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

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

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