Você sabia que os bancos de dados não se resumem àqueles baseados em SQL (Structured Query Language) e não precisam ser relacionais? O movimento NoSQL (Not only SQL) é uma vanguarda nesse sentido, enquanto, o MongoDB, é um dos seus mais notáveis representantes.
Com menos de 10 anos de vida, o MongoDB (lançado em 2009) é um banco de dados de código aberto, não relacional (não trabalha com linhas e tabelas) e multiplataforma — o que muito se deve ao fato de ser escrito nas linguagens C e Java.
Outra característica importante do MongoDB é que se trata de um banco de dados orientados a documentos, o que significa, na prática, que a consulta de dados ocorre em função das informações contidas nos documentos em vez de aplicação de comandos para manusear tabelas.
Agora que você já adquiriu uma noção do assunto que abordarei neste artigo, nos próximos tópicos explicarei, brevemente, o que são bancos de dados NoSQL, os benefícios do MongoDB (e procedimento de download e instalação) e apresentarei um pequeno tutorial contendo os principais comandos.
O que são bancos de dados NoSQL?
Antes de me ater ao MongoDB, vale a pena explicar, brevemente, por que a linguagem não relacional foi criada e a razão pela qual outros bancos de dados, como MongoDB, Redis e Cassandra, vêm ganhando popularidade entre desenvolvedores.
Embora ainda sejam amplamente utilizados no desenvolvimento de software, os bancos de dados relacionais não são do tipo que oferece o melhor desempenho para lidar com grandes volumes de dados e requisições de consulta.
O propósito de criação da abordagem de banco de dados NoSQL é fornecer uma alternativa ao SQL (com ausência dele, mas sem o intuito de extingui-lo) capaz de manipular quantidades elevadas de informações. Para isso, o conceito de database orientado a documentos é fundamental.
Enquanto o banco de dados relacional armazena os dados em um determinado local e criando uma relação entre eles, nos bancos não relacionais eles são tratados separadamente, ou seja, as informações necessárias para identificá-los são armazenadas no próprio documento.
Considerando o momento pelo qual a era digital está passando, marcado pelo Big Data e pelo uso inteligente de informações, o desempenho entregue por bancos de dados como MongoDB é imprescindível para que as empresas alcancem seus objetivos.
Por que muitos desenvolvedores optam pelo MongoDB?
Ao concentrar todos os bancos de dados NoSQL existentes é certo que a lista seria extensa. Contudo, em meio a tantos nomes, o MongoDB dota de certa notabilidade entre os desenvolvedores profissionais — os números divulgados nesta pesquisa da Stack Overflow expressam a preferência: o MongoDB é utilizado por 16,8% dos respondentes.
Embora os motivos não estejam expressos na pesquisa, podemos considerar que uma série de benefícios do MongoDB justifica a sua fama de banco de dados NoSQL mais utilizado no mundo. As vantagens em destaque são:
- instalação rápida;
- fácil de configurar;
- design sem esquemas e nem linguagem SQL;
- não requer uso de máquina virtual para rodar;
- vasta quantidade de documentações disponíveis;
- fornecimento de acesso rápido a documentos; e
- novas versões são lançadas com frequência.
Portanto, o MongoDB se configura como ótima alternativa de banco de dados não relacional porque oferece alta performance, dispõe de vários documentos que ensinam a utilizá-lo e garante, por meio das novas releases, que o usuário usufrua do que há de melhor na tecnologia.
Como instalar e configurar o MongoDB no Linux?
Reiterando, um dos maiores benefícios do MongoDB é a facilidade que o usuário tem para fazer sua instalação e configuração. A seguir, veja como os processos são feitos nas distribuições Ubuntu Server e CentOS.
Observação: o pré-requisito de instalação de banco de dados, seja SQL, seja noSQL, é a preparação do servidor. É necessário criar um novo usuário sudo (não root) que tenha os privilégios ajustados no firewall — a regra vale para ambas as distribuições.
Instalação e configuração do MongoDB no Ubuntu Server
Com o Ubuntu pronto para receber o MongoDB, o primeiro passo é adicionar o repositório MongoDB para que a versão mais recente seja transferida para o servidor. Iniciemos o processo importaremos a chave de autenticação de pacotes de software.
# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
O terminal retornará a seguinte mensagem “output”:
gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Depois de receber a mensagem, adicionaremos o repositório do MongoDB criando uma lista de arquivos necessários para rodar o banco de dados, usando o comando:
# echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
A partir de agora as etapas são mais familiares para quem está acostumado a instalar aplicações no Linux, pois faremos a instalação do pacote do MongoDB usando o comando apt-get:
# sudo apt-get update # sudo apt-get install -y mongodb-org
O sistema concluirá a instalação do MongoDB automaticamente. Viu como é fácil? Para executá-lo, digite:
# sudo systemctl start mongod
Para que o MongoDB seja executado junto à inicialização do sistema, use o comando:
# sudo systemctl enable mongod
Observação: o comando “systemctl” acompanhará você em todas as tarefas relacionadas ao gerenciamento do MongoDB, não apenas na etapa de configuração que acabamos de concluir.
Instalação e configuração do MongoDB no CentOS
A instalação do MongoDB no CentOS é um pouco diferente do mesmo procedimento no Ubuntu, mas é igualmente simples de ser feita.
Para começar, adicionaremos o repositório do MongoDB usando o editor de textos (o Vi, preferencialmente) para criar um arquivo “.repo” para o gerenciador de pacotes “yum”.
# sudo vi /etc/yum.repos.d/mongodb-org.repo
Para assegurar o download da mais recente e estável versão do MongoDB no CentOS, você pode acessar esta página do site oficial e verificar, na primeira etapa de configuração de pacotes, a versão corrente.
No momento em que escrevo este artigo, a versão é a 4.0, conforme a mensagem retornada no terminal.
[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc Antes de prosseguir, verifique se o repositório consta como existente no Yum. Use o comando:
sudo yum repolist
Caso tudo esteja nos conformes, uma mensagem parecida com essa será impressa no terminal:
Output . . . repo id repo name base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras mongodb-org-3.2/7/x86_64 MongoDB Repository updates/7/x86_64 CentOS-7 - Updates . . .
Agora iniciaremos, de fato, a instalação do MongoDB. Primeiramente, como no Ubuntu, utilize o comando:
# sudo yum install mongodb-org
Aparecerão duas solicitações sujeitas à aprovação. Elas servem para permitir a instalação dos pacotes do MongoDB e para importar a chave de autenticação GPG, respectivamente. Acione o Y (Yes) para ambas e, então, inicie o MongoDB usando o comando “systemctl”:
# sudo systemctl start mongod
Contudo, o systemctl não fornecerá resposta após a inicialização. Para certificar-se de que o MongoDB está em execução, use o “mongod.log” com o comando “tail”:
# sudo tail /var/log/mongodb/mongod.log
Se tudo ocorrer perfeitamente, você receberá uma mensagem a qual diz que o MongoDB está aguardando por conexões na porta 27017 (confira abaixo).
Output . . . [initandlisten] waiting for connections on port 27017
Agora você já pode acessar o banco de dados usando o comando “mongo” (sem aspas) para gerenciar suas ações. Para acessar a lista com alguns métodos básicos, acione o “db.help()”.
Para chegar se o MongoDB está configurado para iniciar junto com o sistema operacional, digite:
# systemctl is-enabled mongod; echo $?
Se a resposta for “disabled (1)”, utilize o seguinte comando para permitir a inicialização automática:
# sudo systemctl enable mongod
É recomendada a reinicialização do sistema para validar a configuração.
Como utilizar os comandos do MongoDB?
Conforme prometido no início do artigo, ensinarei alguns dos principais comandos básicos do MongoDB em um breve tutorial. Assim, você conseguirá utilizá-lo assim que concluída a instalação. Vamos aos comandos?
mongodump
Se você já tem um banco de dados em execução, o comando “mongodump” faz o dump dele, ou seja, é feito o backup (para restaurar a cópia de segurança, use o “comando mongorestore”).
mongoimport
Esse comando é usado para importar documentos JSON / CSV para o banco de dados em execução.
mongoexport
Faz o inverso do “mongoimport”, isto é, exporta dados em JSON ou CSV do seu database para outros.
insert
Assim como nos bancos de dados convencionais SQL, o comando “insert” é usado para inserir um ou mais documentos ao banco.
find
O comando “find” seleciona documentos em uma coleção. Caso queira atualizá-lo, o procedimento é o mesmo que em outros bancos: use o comando “update“. Para deletar um item use o comando “delete“.
count
Utilize o comando “count” sempre que quiser saber o número de documentos existentes numa coleção.
Você se lembra de quando falei que a documentação é um ponto forte do MongoDB? Pois então, o site disponibiliza uma extensa lista com vários comandos brevemente explicados. Consulte a página sempre que precisar.
Espero que tenha gostado do artigo especial sobre o MongoDB e, acima de tudo, que ele tenha sido de grande utilidade para o seu desenvolvimento profissional. Falando nisso, você já conhece o melhor caminho para se tornar um expert em Linux?
Para quem está iniciando, e deseja ser um profissional qualificado em servidores Linux, assim com em administração de serviços, eu recomendo iniciar com essa aula aqui:
Espero que goste de mais esse conteúdo, e já comece a criar uma ambiente com Linux, e utilizar o mongodb.
Até a próxima.