Introdução ao banco de dados MongoDB

O MongoDB é um banco de dados multi-plataforma que segue o modelo de documentos, trazendo o conceito NOSQL. Este conceito utiliza o modelo de banco de dados relacionado a documentos, e signifca (Not Only SQL). Portanto o banco de dados não se limita somente ao modelo relacional de dados, ao contrário do MySQL, PostgreSQL, Oracle, dentre outros.

O banco de dados MongoDB é escrito em linguagem C++, armazena dados em documentos em formato BSON, de mesmo modo sendo uma versão binária de JSON e possui licenciamento GNU APL versao 3 (Affero General Public Licence), portanto possui suporte a sistemas operacionais Linux, Solaris, Microsoft Windows e MacOS.

Da mesma forma, outros bancos que seguem também o modelo estão se destacando atualmente são Cassandra, CouchDB, conforme  bancos de dados utilizados em ambientes de cloud computing como Azure Table Storage e Amazon SimpleDB.

Características

Portanto, com características do MongoDB, podemos destacar ótima documentação disponível em seu site oficial, possibilidade de armazenamento de grandes objetos, replicação master / slave e distribuição de dados em sharding.

Portanto, veremos como utilizar a instalação do MongoDB em um sistema Linux, cobrindo a instalação, configuração, principais comandos e operações de inserção, consulta e remoção de dados. Devido ao fato de que o MongoDB é um banco de dados multi-plataforma , porque os conceitos aqui apresentados funcionarão em todas as plataformas oferecidas pelo software.

Instalação e configuração

A seguir é demonstrada a instalaçãod o binário do MongoDB em um sistema Linux. A distribuição utilizada é o Debian, versão 9.4 codnome Strech x64.

Finalmente, processo de instalação deve ser realizado com o gerenciador apt:

Durante a instalação dos pacotes o sistema questiona o administrador se realmente deseja instalar os mesmos e a ação deve ser confirmada pressionando a tecla Y. Após o processo de instalação, o MongoDB encontra-se funcional e na próxima sessão abordaremos alguns dos seus principais comandos.

Comandos

Uma vez com o MongoDB instalado, é possível acessar seu shell e gerenciar bancos de dados e collections. Com comando systemctl, podemos verificar o status do banco de dados:

Caso a saída do comando for semelhante a demonstrada acima, com o campo Active com estado running significa que tudo ocorreu corretamente. Cao o banco de dados não esteja carregado, basta seguir com os seguintes comandos novamente utilizando o utilitário systemctl:

Para verificar se tudo ocorreu bem basta executar novamente a linha de comandos “systemctl status mongodb” e observar o resultado do campo Active.

Portanto com o serviço iniciado, deve ser realizado acesso ao shell:

Por padrão é realizada a conexão no banco de dados test, portanto allistagem bases de dados disponíveis a seguinte linha de comandos a seguir listará todos os bancos de dados no sistema:

Por utilizar o conceito banco de dados orientado a documentos, o MongoDB não utiliza tabelas, e sim collections onde são armazenados os dados referentes ao documento. Para tanto utilizamos o comando show passando parâmetro collections:

No caso foi exibida a collection chamada collectionTest, veremos mais adiante como criar collections e estruturas de dados, além de efetuar a manipulação dos mesmos.

Criar Banco

Para criar um novo banco de dados no MongoDB, entretanto basta utilizar o comando use seguido do nome do banco  a ser criado. Entretanto, como demonstrado a seguir vamos criar o banco de dados corp:

Caso o banco informado não exista, o MongoDB se encarregará de criar o mesmo, a seguir criamos uma collection chamada customers inserindo um documento com informações básicas contendo o nome e email do cliente:

Podemos verificar a collection criada com o comando show collections:

Inserimos dados na collection customers, para tanto estes dados precisam também ser consultados. Podemos realizar este procedimento utilizando o método find:

Deve ser informada a collection para inserir dados:

Para a remoção de documentos, utiliza-se o método remove.

LIstamos todos os documentos da collection e a remoção através do ObjectId:

Após a listagem removemos o documento desejado com o método remove informado o _id desejado:

Backup e Restore

Contudo, o processo de backup e restore no MongoDB realiza-se com os utilitários mongodump e mongo restore. Ambos  trabalham com dumps de dados no formato BSON. Devido a testes digite mongodump, por padrão será efetuado o dump de todos os bancos diretório corrente:

Como resultado é listado o conteúdo do diretório referente ao dump da base de dados corp:

Entretando, para efetuar o backup de apenas uma base de dados, deve ser passo o parâmetro db. Portanto, atribuímos também um diretório de destino com o parâmetro out:

Enfim, é efetuada uma listagem do diretório contendo os arquivos referentes ao dump de uma base de dados específica:

Contudo, existem casos com necessidade de criar um dump específico ao invés de todo o banco de dados. Portanto é necessário especificar o parâmetro –collection a linha de comandos:

Portanto, para remover uma base de dados deve ser utilizado db.dropDatabse():

Portanto, listando as bases podendo constatar que a base corp não consta mais entre as databases:

Portanto, uma vez em que a base de dados coro que está sendo utilizada nos exemplos foi removida, finalmente restore pode ser efetuado . Portanto, processo é realizado com o utilitário mongorestore.

Portanto, seguir será efetuado o restore da base de dados copr com base nos dumps que foram efetuados:

Portanto dados restaurados existem casos com necessidade de efetuar o restore de apenas uma collection em determinada base de dados:

Portanto para confirmar a restauração do dump da collection customers com o método find():

Conclusão

O MongoDB é um banco de dados eficiente por ser totalmente compatível com  JSON, multi-plataforma, portanto compatível com diversas linguagens. Portanto, possuindo documentação com conteúdo técnico bem elaborado e é um projeto bastante ativo.

Portanto para conhecer mais, vale a pena ver amis detalhes em dua documentação oficial;

Referências

Site Oficial – https://www.mongodb.com/community/licensing

Documentação Oficial – https://docs.mongodb.com

Licenciamento – https://www.mongodb.com/community/licensing