- Зачем вообще смотреть в сторону MongoDB
- Что получится в конце
- MongoDB в трех понятиях
- База данных
- Коллекция
- Документ
- Чем MongoDB отличается от SQL на практике
- Где попробовать MongoDB новичку
- MongoDB Atlas
- MongoDB Community Server
- MongoDB Compass
- Практика: создаем crm_demo и leads
- Добавляем первый документ
- Первый фильтр: найти новые заявки
- Что MongoDB делает удобным
- Где MongoDB может быть плохим выбором
- Частые ошибки новичка
- Путать MongoDB и MongoDB Compass
- Хранить документы без договоренности о полях
- Публиковать connection string
- Считать MongoDB “базой без структуры”
- Ответы на эти вопросы могут быть для вас полезными
- MongoDB — это реляционная база?
- MongoDB лучше SQL?
- Нужно ли ставить MongoDB Compass?
- Можно ли использовать MongoDB бесплатно?
- Что учить после первой коллекции?
- Следующий шаг
- Что почитать дальше по MongoDB
Зачем вообще смотреть в сторону MongoDB
Представь простую задачу: на сайте есть форма заявки. Человек оставляет имя, email, источник, бюджет и комментарий. Сегодня в форме пять полей, завтра ты добавляешь Telegram, послезавтра — тег рекламной кампании, потом еще UTM-метки
В SQL-мире ты заранее думаешь о таблице и колонках. Это нормально, особенно когда структура понятна. Но на раннем прототипе иногда хочется быстрее: взять объект заявки и сохранить его почти таким же, как он пришел из формы
Вот тут MongoDB часто ощущается естественно. Она хранит данные документами: примерно так же, как JavaScript хранит объект
{
"name": "Анна",
"email": "anna@example.com",
"source": "landing",
"budget": 50000,
"status": "new"
}
Это не значит, что MongoDB “лучше SQL”. Это значит, что у нее другой способ смотреть на данные. В этом уроке разберем его без академического тумана и сразу создадим первую коллекцию
Что получится в конце
К концу урока у тебя будет:
- понимание, что такое база, коллекция и документ в MongoDB;
- маленькая база
crm_demo; - коллекция
leads; - два документа с заявками;
- первый фильтр по статусу и бюджету;
- понимание, когда MongoDB подходит, а когда лучше взять SQL.
Если ты изучаешь Node.js, веб-разработку или делаешь небольшие инструменты для бизнеса, этот урок хорошо ложится перед материалом Node.js + MongoDB
MongoDB в трех понятиях
База данных
База данных — контейнер верхнего уровня. Например:
crm_demo
Внутри нее могут быть разные коллекции: заявки, пользователи, заказы, события
Коллекция
Коллекция похожа на папку с однотипными документами. Например:
leads
orders
users
events
Если проводить грубую аналогию с SQL, коллекция немного похожа на таблицу. Но это только аналогия, не полное совпадение
Документ
Документ — отдельная запись в коллекции. В MongoDB он хранится в BSON, а для человека обычно выглядит как JSON:
{
"name": "Игорь",
"email": "igor@example.com",
"source": "telegram",
"budget": 25000,
"status": "in_progress"
}
Документ может содержать строки, числа, массивы, вложенные объекты и даты
Чем MongoDB отличается от SQL на практике
В SQL ты часто начинаешь с таблицы:
leads
- id
- name
- email
- source
- budget
- status
Каждая строка живет в этой структуре. Если нужно новое поле, ты меняешь схему таблицы
В MongoDB можно сохранить документы с разным набором полей:
{
"name": "Анна",
"email": "anna@example.com",
"source": "landing",
"budget": 50000,
"status": "new"
}
{
"name": "Игорь",
"email": "igor@example.com",
"source": "telegram",
"budget": 25000,
"status": "in_progress",
"telegram": "@igor_demo"
}
У второго документа есть telegram, у первого нет. MongoDB это разрешает
Но здесь есть ловушка. Гибкость не означает “можно хранить как попало”. Если в одном документе поле называется email, в другом mail, в третьем userEmail, приложение быстро превращается в угадайку. В реальном проекте структуру все равно нужно держать в голове, в коде или через схему в ODM вроде Mongoose
Где попробовать MongoDB новичку
Есть три нормальных пути
MongoDB Atlas
Atlas — облачный вариант. Удобен, если не хочется ставить сервер локально или ты сразу хочешь подключить базу к проекту
Что важно:
- нужен аккаунт;
- нужно создать database user;
- нужно настроить доступ по IP;
- connection string нельзя публиковать с паролем.
MongoDB Community Server
Это локальный сервер MongoDB на твоем компьютере. Хороший вариант, если хочешь учиться без зависимости от облака
Что важно:
- сервер должен быть запущен;
- по умолчанию часто используется порт
27017; - для визуальной работы удобно поставить Compass.
MongoDB Compass
Compass — графический интерфейс. Это не сама база, а программа, через которую можно смотреть базы, коллекции и документы
Новичку Compass полезен: ты видишь документы глазами и быстрее понимаешь, что происходит
Практика: создаем crm_demo и leads
Дальше можно идти двумя путями:
- если используешь Atlas, подключись к кластеру через Compass;
- если MongoDB стоит локально, подключись к
mongodb://localhost:27017.
- Нажми
Create database. - В поле database name напиши
crm_demo. - В поле collection name напиши
leads. - Создай базу.
Теперь внутри crm_demo появится коллекция leads
Добавляем первый документ
В коллекции leads нажми добавление документа и вставь:
{
"name": "Анна",
"email": "anna@example.com",
"source": "landing",
"budget": 50000,
"status": "new"
}
Если Compass ругается, проверь JSON:
- ключи в двойных кавычках;
- строки в двойных кавычках;
- нет лишней запятой после последнего поля.
Добавим второй документ:
{
"name": "Игорь",
"email": "igor@example.com",
"source": "telegram",
"budget": 25000,
"status": "in_progress",
"manager": "Dinar"
}
Теперь в коллекции две заявки
Первый фильтр: найти новые заявки
В поле фильтра Compass вставь:
{ "status": "new" }
Compass покажет только документы, где статус равен new
Теперь найдем заявки с бюджетом больше 30000:
{ "budget": { "$gt": 30000 } }
$gt означает greater than — больше чем
Похожая логика:
$lt— меньше чем;$gte— больше или равно;$lte— меньше или равно;$ne— не равно.
Что MongoDB делает удобным
MongoDB хорошо подходит для ситуаций, где данные похожи на объекты:
- заявки с сайта;
- профили пользователей;
- настройки проекта;
- события аналитики;
- каталоги с разными характеристиками;
- быстрые прототипы;
- API на Node.js.
Например, товар в каталоге может иметь разные поля:
{
"type": "book",
"title": "SQL для начинающих",
"author": "Example Author",
"pages": 320
}
{
"type": "course",
"title": "MongoDB с нуля",
"durationHours": 6,
"lessons": 18
}
В SQL это тоже можно моделировать, но иногда документная структура быстрее на старте
Где MongoDB может быть плохим выбором
Я бы не начинал с MongoDB автоматически, если:
- данные строго табличные;
- много сложных связей;
- нужны тяжелые финансовые транзакции;
- команда уже уверенно работает с PostgreSQL или MySQL;
- основная задача — аналитические отчеты по связанным таблицам.
MongoDB не отменяет SQL. Хороший разработчик выбирает базу под задачу, а не под модное слово
Частые ошибки новичка
Путать MongoDB и MongoDB Compass
MongoDB Server хранит данные. Compass только показывает их и помогает управлять. Если сервер не запущен, один Compass не спасет
Хранить документы без договоренности о полях
Гибкая схема не означает хаос. Даже в маленьком проекте лучше договориться, что у заявки есть name, email, source, status
Публиковать connection string
Строка подключения к Atlas может содержать логин и пароль. Ее нельзя вставлять в публичные статьи, скриншоты и репозитории
Считать MongoDB “базой без структуры”
Структура есть, просто она чаще контролируется приложением, а не только самой базой
Ответы на эти вопросы могут быть для вас полезными
MongoDB — это реляционная база?
Нет. MongoDB — документная NoSQL-база. Она хранит документы в коллекциях, а не строки в таблицах
MongoDB лучше SQL?
Не универсально. MongoDB удобна для документных данных и быстрых прототипов. SQL часто лучше для строгих связей, отчетов и транзакций
Нужно ли ставить MongoDB Compass?
Не обязательно, но новичку я бы поставил. Compass помогает увидеть документы, фильтры и коллекции без лишней консоли
Можно ли использовать MongoDB бесплатно?
Для обучения и локальной разработки — да. У облачных тарифов условия нужно проверять на официальной странице Atlas, потому что они могут меняться
Что учить после первой коллекции?
Следующий шаг — подключить MongoDB к Node.js и сделать маленький API для заявок. Тогда база станет частью приложения, а не отдельной вкладкой в Compass
Следующий шаг
Создай коллекцию tasks и добавь три задачи:
{
"title": "Записать урок про MongoDB",
"status": "new",
"priority": 2
}
Потом отфильтруй задачи по status. Если это получилось, переходи к материалу MongoDB Compass: подключение и первая коллекция или сразу к Node.js + MongoDB
Что почитать дальше по MongoDB
Если вы собираете тему по шагам, рядом лучше открыть:
- Как установить MongoDB Community Server и проверить, что база работает — поставить локальный сервер и проверить, что база отвечает.
- MongoDB Compass: подключение и первая коллекция без командной строки — увидеть коллекции и документы без командной строки.
- MongoDB Atlas: облачная база для первого проекта — попробовать облачную базу для учебного проекта.
- Node.js + MongoDB: мини-проект с заявками — подключить MongoDB к маленькому API на Node.js.



