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

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

После успешного выполнения блока, возвращается _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}