Что такое MongoDB Shell
Официальная оболочка mongosh - это современный интерфейс командной строки для работы с MongoDB. Она работает поверх Node.js, что даёт следующие преимущества:
расширенное автодополнение команд;
форматированный и читабельный вывод;
выполнение JavaScript прямо в сессии;
унифицированный способ подключения к разным типам серверов (локальным, удалённым и облачным).
Важно: устаревший mongo-шелл больше не поддерживается и рекомендуется использовать именно mongosh.
Предварительные требования
Чтобы следовать рекомендациям из этой статьи, вам понадобится:
сервер с установленной MongoDB (например, на Ubuntu или другом Linux);
базовые навыки работы с терминалом;
если включена аутентификация то действующие учётные данные пользователя;
базовое понимание структуры MongoDB.
Подключение к серверу MongoDB
Локальное подключение
Если MongoDB работает на той же машине и слушает стандартный порт 27017, то подключиться очень просто:
mongoshПо умолчанию это попытка подключения к:
mongodb://127.0.0.1:27017Если подключение прошло успешно, консоль покажет приветственное сообщение с версией сервера, адресом подключения и текущим контекстом базы данных.
Подключение с аутентификацией
Если на сервере включена авторизация, запускать оболочку нужно так:
mongosh --username <пользователь> --authenticationDatabase adminПосле ввода команды система запросит пароль.
Современный и более явный способ использовать connection string, например:
mongosh "mongodb://<user>@localhost:27017/admin"Это особенно удобно и прозрачно.
Подключение к удалённому серверу
Чтобы подключиться к серверу MongoDB, работающему на другой машине, добавьте флаги --host и --port:
mongosh --host db.example.com --port 27017А если сервер требует аутентификации и защищён TLS/SSL, то лучше использовать строку подключения с явным указанием всех параметров.
Основные команды оболочки
Текущая база данных
Чтобы узнать, с какой базой вы сейчас работаете, просто введите:
dbЕсли вы впервые подключились и не указывали другую базу, по умолчанию это будет test.
Переключение между базами
Чтобы переключиться на другую базу данных:
use fruitsMongoDB подхватит это имя и переключит рабочий контекст. Если база fruits ещё не существует, она будет создана только тогда, когда вы добавите в неё данные.
Просмотр баз данных и коллекций
Посмотреть все базы данных:
show dbsПосмотреть коллекции в текущей базе:
show collectionsЕсли база пустая, команды могут не показать ничего и это нормально.
Вставка и чтение данных
Чтобы создать документ в коллекции apples в базе fruits, выполните:
db.apples.insertOne({ name: 'Red Delicious' })Это не только вставит документ, но и автоматически создаст базу и коллекцию, если их ещё нет.
Чтобы посмотреть, что находится в коллекции:
db.apples.find()Shell выведет список документов, например:
{ _id: ObjectId("..."), name: "Red Delicious" }Справка и автодополнение
Оболочка содержит встроенную помощь. Просто введите:
helpВы увидите список команд и подсказки по основным операциям. Кроме того, автодополнение работает как в популярных оболочках (например, Bash): после ввода части слова нажмите TAB, чтобы увидеть возможные варианты и автоматически дополнить слово.
Например:
db.apи нажатие TAB покажет db.apples.
MongoDB Shell (mongosh) - это основное средство для интерактивной работы с базой данных изучив основы которого, вы сможете использовать mongosh как инструмент для оперативной работы, автоматизации задач и моделирования сценариев с MongoDB, а также перейдёте к более сложным операциям CRUD, агрегациям и управлению производительностью.