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

3.06. MongoDB

Разработчику Аналитику Тестировщику
Архитектору Инженеру

MongoDB

Документ, Коллекция, База данных, _id и ObjectId.
что такое BSON и как он отличается от JSON.
CRUD-операции: Детально опишите методы insertOne, insertMany, updateOne, updateMany, deleteOne, deleteMany, findOne, find.
Запросы и курсоры: Как строить сложные запросы с операторами $gt, $lt, $in, $or, $and и т.д. Как работать с курсорами, ограничивать (limit), пропускать (skip) и сортировать (sort) результаты.
Зачем нужны индексы и как они работают.
Агрегация данных/ Объясните концепцию конвейеров (pipeline) и этапов ($match, $project, $group, $sort, $unwind).
что такое транзакции в MongoDB

MongoDB – документо-ориентированная БД. Документы хранятся в JSON-подобном формате (BSON, Binary JSON - бинарное представление JSON). Благодаря хранению данных в BSON и использованию индексов, MongoDB обеспечивает высокую скорость чтения и записи.Данные хранятся частично в кэше, частично на диске. В отличие от SQL, документ не придётся разбивать на несколько таблиц и можно изложить так:

{
"_id": "507f191e810c19729de860ea",
"name": "Виктор",
"age": 28,
"hobbies": ["гитара", "программирование"],
"address": {
"city": "Москва",
"street": "Ленина, 42"
}
}

Это применимо для соцсетей (посты, комментарии), каталогов товаров интернет-магазина, логов и аналитики.

MongoDB не требует строгой схемы данных, что позволяет легко адаптироваться к изменениям в структуре данных. Также MongoDB может обрабатывать большие объёмы данных и высокие нагрузки и поддерживает горизонтальное масштабирование через шардирование (разделение данных между несколькими серверами), а также позволяет выполнять репликацию данных на несколько серверов через Replica Sets.

Каждый документ имеет уникальный идентификатор _id, который автоматически генерируется MongoDB, если не указан явно.

База данных MongoDB содержит одну или несколько коллекций.

Коллекция — это группа документов, аналог таблицы в реляционных базах данных. Коллекции могут содержать документы с разной структурой (схема не фиксирована).

Установка и развёртывание:

  • скачать MongoDB с официального сайта;
  • запустить сервер командой «mongod»;
  • подключиться через консоль - «mongo».

Администрирование производится через GUI (графический интерфейс):

  • MongoDB Compass (официальный);
  • Robo 3T (альтернативный).

MongoDB поддерживает аутентификацию и авторизацию пользователей. Можно настроить контроль доступа (RBAC — Role-Based Access Control) и включать SSL/TLS для шифрования данных при передаче.

В языках программирования есть специальные фреймворки и библиотеки для работы (Mongoose, PyMongo, Spring Data MongoDB и т.д.).

Официальный сайт MongoDB - https://www.mongodb.com/

Чит-лист - https://cheatsheets.zip/mongodb