Основные команды администрирования MongoDB для начинающих

Освойте основные команды администрирования MongoDB с помощью оболочки `mongosh`. Это руководство охватывает фундаментальные задачи для новичков, включая переключение баз данных, создание/удаление коллекций, управление пользователями с ролями и важные проверки состояния системы, такие как `serverStatus`. Изучите базовые команды, необходимые для безопасного управления вашей NoSQL-средой.

30 просмотров

Основные команды администрирования MongoDB для начинающих

MongoDB, ведущая документо-ориентированная база данных NoSQL, известна своей гибкостью и масштабируемостью. Хотя разработчики часто сосредоточены на операциях CRUD (создание, чтение, обновление, удаление), эффективное управление средой базы данных в значительной степени зависит от понимания основных команд администрирования. Это руководство знакомит начинающих с основными командами, необходимыми для управления базой данных, администрирования пользователей и проверки состояния системы, обеспечивая бесперебойную и безопасную работу вашего экземпляра MongoDB.

Овладение этими задачами администрирования имеет решающее значение для всех, кто выходит за рамки простой локальной разработки в производственные среды. Мы рассмотрим, как взаимодействовать с оболочкой mongosh для управления базами данных, коллекциями, пользователями и выполнения необходимой диагностики системы.


Доступ к оболочке MongoDB (mongosh)

Основным интерфейсом для выполнения команд администрирования является оболочка MongoDB, к которой обычно обращаются с помощью команды mongosh. Именно здесь вы выполняете команды на основе JavaScript непосредственно против вашего экземпляра MongoDB.

Чтобы подключиться к локальному экземпляру MongoDB, работающему на порту по умолчанию (27017), просто введите:

mongosh

После подключения вы увидите приглашение >, указывающее, что вы готовы вводить команды.

Команды управления базами данных

Управление тем, какая база данных используется в данный момент, и просмотр существующих баз данных являются фундаментальными задачами администрирования.

Отображение всех баз данных

Чтобы увидеть список всех баз данных, присутствующих в данный момент на сервере MongoDB, используйте команду show dbs:

> show dbs
admin    40.00 KiB
config   72.00 KiB
local    72.00 KiB
myAppDB 100.00 KiB

Переключение баз данных

Прежде чем вы сможете создать базу данных или коллекцию, вам необходимо переключить контекст на нужную базу данных с помощью команды use. Если база данных не существует, MongoDB создаст ее неявно при первой вставке данных.

> use myAppDB
switched to db myAppDB

Просмотр текущей базы данных

Чтобы подтвердить, в каком контексте базы данных вы в данный момент работаете, используйте db:

> db
myAppDB

Удаление базы данных

Внимание: Это действие необратимо удалит все данные в указанной базе данных. Используйте с крайней осторожностью, особенно в производственных средах.

Чтобы удалить текущую базу данных (ту, которую возвращает db):

> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }

Команды управления коллекциями

Коллекции аналогичны таблицам в реляционных базах данных. Управление ими осуществляется просто с помощью сокращения db.

Отображение коллекций

При использовании определенной базы данных отобразите все коллекции внутри нее с помощью show collections (или эквивалентной db.getCollectionNames() в старых версиях):

> show collections
users
products
orders

Создание коллекций

Коллекции часто создаются автоматически при первой вставке. Однако вы можете явно создать одну с помощью db.createCollection() для контроля над правилами проверки или ограничениями.

// Создание стандартной коллекции с именем 'logs'
> db.createCollection("logs")
{ "ok" : 1 }

Удаление коллекции

Чтобы полностью удалить коллекцию:

> db.logs.drop()
true

Администрирование пользователей и безопасности

Для любой базы данных, предназначенной для производственного использования, защита доступа с помощью аутентификации пользователей является обязательной. Управление пользователями обычно выполняется в базе данных admin или в конкретной базе данных, где пользователь должен иметь разрешения.

Переключение на базу данных Admin для создания пользователя

Стандартной практикой является создание административных пользователей в базе данных admin, хотя пользователи с ролевым доступом могут быть созданы в базах данных приложений.

> use admin
switched to db admin

Создание пользователя

Используйте db.createUser() для добавления нового пользователя. Это требует указания имени пользователя, надежного пароля и назначенных ролей.

> db.createUser(
...   {
...     user: "appAdmin",
...     pwd: passwordPrompt(), // Безопасно запрашивает пароль
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
...   }
... )
  • Совет: Использование passwordPrompt() настоятельно рекомендуется вместо встраивания паролей в открытом тексте в скриптах.

Отображение пользователей

Чтобы увидеть существующих пользователей в текущей базе данных:

> show users

Мониторинг и диагностика системы

Администраторы нуждаются в способах проверки работоспособности, состояния и конфигурации работающего экземпляра MongoDB.

Проверка состояния сервера

Команда serverStatus возвращает исчерпывающий документ с подробной статистикой о работе сервера, включая использование памяти, соединения и операции.

> db.serverStatus()
// Вывод будет представлять собой большой JSON-документ с метриками.

Просмотр текущих соединений

Чтобы увидеть активные клиентские соединения, вы можете запросить команду currentOp или посмотреть в выводе serverStatus в разделе подключений. Прямой способ просмотра текущих операций:

> db.currentOp()

Проверка конфигурации

Чтобы просмотреть настройки конфигурации, применяемые к экземпляру в данный момент:

> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })

Резюме и следующие шаги

Эти основные команды, охватывающие переключение баз данных, управление коллекциями, создание пользователей и базовый мониторинг, составляют основу эффективного администрирования MongoDB. В то время как mongosh обеспечивает немедленную обратную связь, продвинутый мониторинг часто требует интеграции с MongoDB Compass или использования интерфейса MongoDB Atlas для визуальной диагностики.

Лучшая практика: Всегда подключайтесь с учетными данными и ограничивайте роли пользователей минимально необходимыми разрешениями (Принцип наименьших привилегий).

Начните практиковать эти команды в непроизводственной среде, чтобы обрести уверенность перед управлением критически важными хранилищами данных.