Comandos Essenciais de Administração MongoDB para Iniciantes
MongoDB, um banco de dados NoSQL líder em documentos, é conhecido por sua flexibilidade e escalabilidade. Enquanto os desenvolvedores geralmente se concentram em operações CRUD (Criar, Ler, Atualizar, Excluir), o gerenciamento eficaz do ambiente do banco de dados depende muito da compreensão de comandos administrativos essenciais. Este guia apresenta aos iniciantes os comandos principais necessários para gerenciamento de banco de dados, administração de usuários e verificações de integridade do sistema, garantindo que sua instância MongoDB funcione de forma suave e segura.
Dominar essas tarefas administrativas é crucial para qualquer pessoa que esteja passando do desenvolvimento local simples para ambientes de produção. Exploraremos como interagir com o shell mongosh para gerenciar bancos de dados, coleções, usuários e realizar diagnósticos de sistema necessários.
Acessando o Shell MongoDB (mongosh)
A interface principal para executar comandos administrativos é o Shell MongoDB, geralmente acessado usando o comando mongosh. É aqui que você executa comandos baseados em JavaScript diretamente em sua instância MongoDB.
Para se conectar a uma instância MongoDB local em execução na porta padrão (27017), basta digitar:
mongosh
Uma vez conectado, você verá o prompt >, indicando que está pronto para emitir comandos.
Comandos de Gerenciamento de Banco de Dados
Gerenciar qual banco de dados você está usando atualmente e visualizar bancos de dados existentes são tarefas administrativas fundamentais.
Listando Todos os Bancos de Dados
Para ver uma lista de todos os bancos de dados atualmente presentes no servidor MongoDB, use o comando show dbs:
> show dbs
admin 40.00 KiB
config 72.00 KiB
local 72.00 KiB
myAppDB 100.00 KiB
Trocando de Banco de Dados
Antes de poder criar um banco de dados ou coleção, você deve mudar o contexto para o banco de dados desejado usando o comando use. Se o banco de dados não existir, o MongoDB o criará implicitamente na primeira inserção de dados.
> use myAppDB
switched to db myAppDB
Visualizando o Banco de Dados Atual
Para confirmar em qual contexto de banco de dados você está operando atualmente, use db:
> db
myAppDB
Excluindo um Banco de Dados
Aviso: Esta ação exclui permanentemente todos os dados dentro do banco de dados especificado. Use com extrema cautela, especialmente em ambientes de produção.
Para excluir o banco de dados atual (aquele retornado por db):
> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }
Comandos de Gerenciamento de Coleções
Coleções são análogas a tabelas em bancos de dados relacionais. Gerenciá-las é simples usando o atalho do objeto db.
Listando Coleções
Enquanto estiver usando um banco de dados específico, liste todas as coleções dentro dele usando show collections (ou o equivalente db.getCollectionNames() em versões mais antigas):
> show collections
users
products
orders
Criando Coleções
Coleções são frequentemente criadas automaticamente na primeira inserção. No entanto, você pode criar uma explicitamente usando db.createCollection() para controle sobre regras de validação ou limitação (capping).
// Criando uma coleção padrão chamada 'logs'
> db.createCollection("logs")
{ "ok" : 1 }
Excluindo uma Coleção
Para remover uma coleção inteiramente:
> db.logs.drop()
true
Administração de Usuários e Segurança
Para qualquer banco de dados destinado ao uso em produção, a segurança de acesso via autenticação de usuário é obrigatória. O gerenciamento de usuários é tipicamente realizado dentro do banco de dados admin ou do banco de dados específico onde o usuário deve ter permissões.
Trocando para o Banco de Dados Admin para Criação de Usuários
É prática padrão criar usuários administrativos no banco de dados admin, embora usuários baseados em função possam ser criados em bancos de dados de aplicação.
> use admin
switched to db admin
Criando um Usuário
Use db.createUser() para adicionar um novo usuário. Isso requer a especificação do nome de usuário, uma senha segura e as funções atribuídas.
> db.createUser(
... {
... user: "appAdmin",
... pwd: passwordPrompt(), // Solicita a senha de forma segura
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
... }
... )
- Dica: Usar
passwordPrompt()é altamente recomendado em vez de incorporar senhas em texto simples em scripts.
Listando Usuários
Para ver os usuários existentes dentro do banco de dados atual:
> show users
Monitoramento e Diagnóstico do Sistema
Os administradores precisam de maneiras de verificar a saúde, o status e a configuração da instância MongoDB em execução.
Verificando o Status do Servidor
O comando serverStatus retorna um documento abrangente detalhando estatísticas sobre a operação do servidor, incluindo uso de memória, conexões e operações.
> db.serverStatus()
// A saída será um grande documento JSON contendo métricas.
Visualizando Conexões Atuais
Para ver conexões ativas de clientes, você pode consultar o comando currentOp ou procurar na saída de serverStatus na seção de conexões. Uma maneira direta de visualizar operações atuais é:
> db.currentOp()
Verificando a Configuração
Para visualizar as configurações de configuração atualmente aplicadas à instância:
> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })
Resumo e Próximos Passos
Esses comandos essenciais — cobrindo troca de banco de dados, gerenciamento de coleções, criação de usuários e monitoramento básico — formam a base da administração eficaz do MongoDB. Embora mongosh forneça feedback imediato, o monitoramento avançado geralmente requer integração com o MongoDB Compass ou o uso da interface MongoDB Atlas para diagnósticos visuais.
Melhor Prática: Sempre conecte-se com credenciais e restrinja as funções dos usuários às permissões mínimas necessárias (Princípio do Menor Privilégio).
Comece a praticar esses comandos em um ambiente não produtivo para ganhar confiança antes de gerenciar armazenamentos de dados críticos.