Как создать базу данных и коллекции в MongoDB

Введение
MongoDB хранит данные в коллекциях, а коллекции организованы внутри баз данных. В отличие от реляционных СУБД, где физическое существование базы данных часто фиксировано, в MongoDB база данных становится видимой (и «создаётся» в интерфейсе), когда в ней появляется хотя бы одна коллекция и/или документ.
Это руководство проведёт вас по всем шагам: установка инструментов, создание базы и коллекций через mongosh, создание через MongoDB Compass, вставка документов, рекомендации по безопасности и контрольные списки для разных ролей.
Первичная настройка MongoDB
Что нужно установить:
- mongosh — современная командная оболочка MongoDB. Скачайте с официальной страницы загрузок MongoDB Tools.
- MongoDB Compass — настольное приложение с графическим интерфейсом.
Если вы предпочитаете не вводить команды вручную, используйте MongoDB Compass. Если хотите автоматизировать и писать сценарии — пользуйтесь mongosh или драйверами для вашего языка.
Важно: завести аккаунт и кластер в MongoDB Atlas имеет смысл для production или облачных тестов. Atlas — это управляемая платформа, но в этой статье мы ограничиваемся локальной оболочкой и Compass.
Доступ к mongosh внутри MongoDB Compass
- Откройте MongoDB Compass после установки.
- Нажмите вкладку внизу слева с надписью >_MONGOSH, чтобы открыть встроенную оболочку.
- Потяните вверх три горизонтальные полосы, чтобы развернуть интерфейс терминала.

Это удобно, когда вы хотите сочетать визуальную навигацию по коллекциям и быстрые команды mongosh в одном окне.
Как создать базу данных и коллекции через MongoDB Shell (mongosh)
mongosh принимает последовательность текстовых команд. Примерный рабочий процесс:
Создание базы данных
В оболочке выполните:
use mynewdatabaseКоманда переключает вашу текущую сессию на базу mynewdatabase. В MongoDB сама база не появится в списке до тех пор, пока вы не создадите коллекцию или не вставите документ.
Создание коллекции
Чтобы явно создать пустую коллекцию:
db.createCollection('MUO')Где ‘MUO’ — имя коллекции. Вы можете создавать любые имена, соблюдая ограничения на символы и длину.
Примечание: если вы будете сразу вставлять документ, явный вызов db.createCollection не обязателен — коллекция создастся автоматически при первой вставке.
Вставка документа
Пример вставки одного документа в коллекцию MUO:
db.MUO.insertOne({ FirstName: 'Idowu' })Пример вставки нескольких документов:
db.MUO.insertMany([
{ FirstName: 'Idowu', Age: 30 },
{ FirstName: 'Anna', Age: 27 }
])Просмотр баз данных и коллекций
- Показать все базы:
show dbs- Показать коллекции в текущей базе:
show collections- Переключиться на базу и проверить документы:
use mynewdatabase
db.MUO.find().pretty()Как создать базу и коллекции через MongoDB Compass (GUI)
- Запустите MongoDB Compass и подключитесь к серверу/кластеру.
- Нажмите Connect, чтобы загрузить список существующих баз.
- В левом верхнем углу нажмите CREATE DATABASE.

- В поле Database Name укажите имя базы данных.
- В поле Collection Name укажите имя начальной коллекции (MongoDB требует хотя бы одну коллекцию для создания).
- Нажмите Create Database.

Обновите левую панель (иконка обновления), чтобы увидеть новую базу. Нажмите базу в боковой панели, чтобы просматривать и управлять коллекциями.
Ментальная модель: как думать о MongoDB
- База данных — логическая группа данных (аналог схемы в SQL).
- Коллекция — набор документов, аналог таблицы, но без строгой схемы.
- Документ — единица данных в формате BSON (похож на JSON), где каждое поле — пара ключ‑значение.
Эта модель помогает понять, почему создание коллекции делает базу «видимой» — MongoDB ориентирован на документы, а не на заранее описанные таблицы.
Когда создание может «не сработать» — типичные ошибки и решения
- «База не отображается в Compass» — убедитесь, что в базе есть коллекция или хотя бы один документ; иначе база может не появляться в списке.
- Ошибка прав доступа — проверьте пользователя и разрешения: для создания баз/коллекций нужны соответствующие роли (dbAdmin, readWrite и т.д.).
- Нестандартные символы в имени коллекции приводят к ошибке; используйте простые имена.
Важно: при подключении к удалённому кластеру через Compass возможно, что сетевые правила (IP whitelist) блокируют соединение.
Альтернативные подходы к созданию коллекций
- Использовать драйверы для языка приложения (Node.js, Python, Java). Примеры:
- Node.js: при первой вставке коллеция создастся автоматически через MongoClient.
- Python (pymongo): db.create_collection(‘name’) либо вставка документа.
- Использовать MongoDB Atlas UI для создания баз/коллекций в облаке.
- Деплой через инфраструктурный код: Terraform + MongoDB Atlas provider.
Каждый подход подходит для разных задач: ручной ввод — для тестов; драйверы — для CI/CD и приложений; Atlas UI — для управления облачными кластерами.
Безопасность и харднинг при создании баз
- Никогда не запускайте MongoDB с дефолтными настройками аутентификации в production.
- Создайте пользователей с минимальными правами: принцип наименьших привилегий.
- Ограничьте доступ по IP, используйте шифрование трафика TLS/SSL.
- Настройте резервное копирование и план восстановления.
Короткий чеклист безопасности:
- Включена аутентификация
- У пользователей минимально необходимые роли
- Включён TLS для сетевого трафика
- Настроено резервное копирование
SOP: Быстрая процедура для создания базы и коллекции (оперативная инструкция)
- Подключитесь к серверу через mongosh или MongoDB Compass.
- План: определить имя базы и начальной коллекции.
- В mongosh выполнить:
use mynewdatabase
db.createCollection('MUO')Или, если вставляете первый документ сразу:
db.MUO.insertOne({ createdAt: new Date(), createdBy: 'admin' })- Проверить наличие базы:
show dbs- Назначить права доступа (если необходимо):
db.createUser({ user: 'appuser', pwd: 'securePassword', roles: [ { role: 'readWrite', db: 'mynewdatabase' } ] })- Документировать имя базы и ответственных в системе управления конфигурацией.
Ролевые чеклисты
Администратор:
- Создать базу, назначить роли, настроить бэкап.
Разработчик:
- Создать коллекцию, вставить тестовые документы, предоставить примеры запросов.
DevOps:
- Автоматизировать создание в CI/CD, настроить мониторинг и оповещения.
Примеры полезных команд/шаблонов (cheat sheet)
- Создать базу и коллекцию:
use analytics
db.createCollection('events')- Вставить документ с индексируемым полем:
db.events.insertOne({ type: 'click', userId: 'u123', ts: new Date() })- Создать индекс:
db.events.createIndex({ userId: 1 })- Удалить коллекцию (опасная операция):
db.events.drop()Критерии приёмки
- База данных видна в MongoDB Compass после создания коллекции.
- Коллекция появилась и принимает документы (insertOne/insertMany проходит без ошибок).
- Права доступа корректны (пользователи имеют только нужные роли).
- Для production: настроены TLS и резервное копирование.
Миграция и совместимость
- При миграции реляционной схемы в MongoDB подумайте о структуре документов: вложенные объекты часто удобнее, чем множество связанных коллекций.
- Проверьте совместимость драйверов: версии драйверов и сервера MongoDB должны быть совместимы.
Небольшая методология: как планировать структуру данных
- Определите операции чтения/записи и частоту обновлений.
- Решите: денормализовать (вложенные документы) или нормализовать (несколько коллекций).
- Добавьте индексы под основные запросы.
- Тестируйте на объёмах, приближённых к production.
1‑строчный словарь
- BSON — бинарный формат представления JSON-подобных документов.
- Коллекция — набор документов внутри базы.
- Документ — структура данных (ключ‑значение), аналог строки в таблице.
Итог и рекомендации
MongoDB упрощает создание баз и коллекций: можно явно создать коллекцию через db.createCollection или позволить MongoDB создать её при первой вставке документа. Используйте mongosh для автоматизации и Compass для инспекции и быстрой настройки. Обязательно настройте безопасность и минимальные права пользователей перед переводом в production.
Важно: тестируйте структуру документов и индексы на реальных объёмах данных, чтобы избежать проблем с производительностью.
Краткие рекомендации:
- Для быстрых тестов используйте Compass.
- Для автоматизации — mongosh и драйверы.
- Для production — настраивайте роли, TLS и бэкапы.
Краткое резюме
- MongoDB хранит данные в базах и коллекциях; коллекция делает базу видимой.
- Создать базу можно через
useиdb.createCollection('.') - MongoDB Compass позволяет создать базу и коллекцию в пару кликов.
- Следите за правами, шифрованием и резервным копированием перед продакшеном.