В прошлом уроке мы разобрали, из чего состоят документы и где они живут. Пока все опыты шли в песочнице на странице. Сегодня запускаем настоящий сервер MongoDB и подключаемся к нему. Способов два: облако Atlas, где сервер поднимают за тебя, и Docker на своём компьютере. Если ты проходил установку PostgreSQL, многое покажется знакомым.
Свой дом или съёмная квартира
Жильё можно построить самому или снять готовое. Свой дом полностью под твоим контролем, но крышу чинишь сам. В съёмной квартире всё уже работает, зато правила устанавливает хозяин, а за большую площадь придётся платить.
С MongoDB так же:
- Docker это свой дом. Сервер работает на твоём компьютере, данные лежат у тебя, интернет не нужен.
- Atlas это съёмная квартира. MongoDB Atlas это облачный сервис от авторов MongoDB: кластер поднимается в пару кликов, резервные копии и обновления делают за тебя. Для учёбы есть бесплатный кластер.
Для этого раздела подойдёт любой способ. Docker надёжнее для опытов: ничего не зависит от сети и лимитов облака.
Способ первый: Docker
Если Docker уже стоит, одна команда поднимает сервер с паролем:
docker run --name mongo \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
-p 27017:27017 \
-v mongodata:/data/db \
-d mongo:8
По строкам:
MONGO_INITDB_ROOT_USERNAMEиMONGO_INITDB_ROOT_PASSWORDсоздают администратора при первом запуске. Без них сервер пустит любого, кто дотянется до порта.-p 27017:27017открывает стандартный порт MongoDB, 27017.-v mongodata:/data/dbхранит данные в томе. Контейнер можно удалить и создать заново, данные останутся.-d mongo:8запускает образ MongoDB 8 в фоне.
Оболочка mongosh
С сервером разговаривают через клиент. Официальный консольный клиент называется mongosh. Он уже лежит внутри контейнера:
docker exec -it mongo mongosh -u admin -p secret
Current Mongosh Log ID: 6ac936eb36b489609148e4b8
Connecting to: mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.12.0
Using MongoDB: 8.3.11
Using Mongosh: 2.12.0
For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/
...
test>
Строка test> это приглашение: оболочка ждёт команд, а слово перед > это имя текущей базы. На месте многоточия mongosh печатает сообщение о сборе статистики использования и предупреждения сервера о настройке системы. Для учебного сервера их можно не читать. Выход из оболочки: exit или Ctrl+D.
Номера версий у тебя могут отличаться. Все примеры раздела проверены на MongoDB 8.
урок из курса
Урок из курса «MongoDB с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.