Базы данных: MongoDB и Mongoose
Храните, запрашивайте и структурируйте данные приложения с документной базой данных
- объяснить, что такое документ, коллекция и база данных в MongoDB;
- подключить приложение Node к MongoDB и определить схему и модель с помощью Mongoose;
- выполнять четыре операции CRUD (создание, чтение, обновление, удаление);
- оценивать, когда документная база подходит задаче, а когда лучше реляционная.
1. Что такое MongoDB? Документы и коллекции
MongoDB — это документная база данных NoSQL. Вместо таблиц с фиксированными строками и столбцами она хранит документы: гибкие JSON-подобные объекты. Группа связанных документов — это коллекция, а группа коллекций — это база данных.
Один документ пользователя может выглядеть так:
{
"_id": "6512a3f0c1e4b2a9d8f00a12",
"name": "Sara",
"email": "sara@example.com",
"age": 24,
"hobbies": ["chess", "guitar"]
}
Обратите внимание: документ содержит массив (hobbies) прямо внутри себя. В реляционной базе для этого обычно нужна вторая таблица; в MongoDB это просто поле. Каждый документ автоматически получает поле _id — уникальный идентификатор, который MongoDB создаёт за вас (это ObjectId).
Аналогия. Представьте реляционную (SQL) базу как строгую таблицу: каждая строка должна иметь ровно одни и те же столбцы в одном порядке. Документная база больше похожа на коробку с карточками: каждая карточка самодостаточна, может нести списки и вложенные заметки, и две карточки не обязаны выглядеть одинаково. Такая гибкость мощна, но означает, что вы отвечаете за согласованность карточек.