Выполнить запрос к 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}