💡 O que é o mongoDB?
MongoDB é um banco de dados orientado a documentos, com foco em velocidade e escalabilidade. Nós usamos o mongoDB em diversos módulos no projeto, mas ele não é uma Bala de Prata, por isso não encorajamos nossos engenheiros a utiliza-lo em qualquer módulo, isso deve ser analisado e avaliado por todos os membros da equipe.
Instalação
Baixar
Seguiremos os passos oficiais de instalação do mongoDB no Ubuntu.
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
Após instalar o mongoDB, você pode gerenciar o serviço com os comandos:
sudo systemctl start mongod
Para iniciar o serviço
sudo systemctl status mongod
Para verificar se o serviço está ativo
sudo systemctl restart mongod
Para reiniciar o serviço
sudo systemctl stop mongod
Para parar o serviço
Habilitar a autenticação
Após instalar vamos habilitar a autenticação, abra o terminal e siga os passos a seguir.
mongo --port 27017 # Abre o shell do mongoDB
Vamos acessar a database: admin, e criar um novo usuário com privilégios de admin.
use admin
db.createUser(
{
user: "DIGITE_NOME_DE_USUARIO",
pwd: "DIGITE_SUA_SENHA",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
Senhas devem ser difíceis de adivinhar
Não use a senha mostrada na imagem a cima.
Vamos parar o serviço do mongodb.
sudo systemctl stop mongod
Configuração
Abra o arquivo mongod.cfg de configuração do MongoDB.
sudo nano /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: E:\mongodb_data\data
journal:
enabled: true
# engine:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: E:\mongodb_data\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
#processManagement:
security:
authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
Inicie o serviço do MongoDB novamente e acesso o terminal de comando novamente.
sudo systemctl stop mongod
Agora se acessar o shell do mongo novamente, e tentar deletar o usuário que criamos, ocorrerá uma falha de autenticação.
Acesse usando suas credenciais
Para acessar o shell do mongoDB, você pode executar o comando abaixo.
mongo -u "DIGITE_NOME_DE_USUARIO" -p "DIGITE_SUA_SENHA"
Usando o MongoDB Compass
Clique em Fill in connection fields individually, você verá uma nova tela para preencher os campos, bem o Hostname e Port irão se manter, pois são os padrões, e no momento não iremos acessar um servidor remoto do mongoDB, vamos alterar o modo de Authentication para SCRAM-SHA-256, coloque seu nome de usuário e senha, depois clique em Connect.
Perfeito, bem você pode realizar o trivial nas databases usando o compass, como por exemplo: criar novos registro, editar os registros, deletar registros, e etc, inclusive você pode deletar databases, mas as mesmas precisam está sem registros. Nós iremos abordar mais a frente o uso do compass.
Conclusão
Aprendemos o básico do mongoDB, o próximo passo é realizar uma replicação e fragmentação, que serão essenciais em um ambiente de produção.
Considerações
Nossos servidores estão com o Windows Server?
Sim, estamos usando o Windows Server 2019, mas grande parte do nosso ambiente já é híbrido.