0

Em se tratando de NoSQL, pode-se pensar grande... pode-se pensar em MongoDB!!!

#MongoDB
Luiz Rocha
Luiz Rocha

Mongo provém de Humongous, de origem americana, que significa algo gigantesco...


O que é de fato o mongoDB?

  • Banco de Dados (BD) Não Relacional (NoSQL) orientado a documentos no estilo JSON.


Vale frisar que NoSQL não significa que não se pode usar SQL (Existem mecanismos para isso em bancos não relacionais, porém não é usual...)


É normal pensar... um Banco de Dados relacional ou um Banco de Dados não relacional???

Resposta: Depende do caso!


Todos os casos têm que serem estudados para saber qual tipo usar e qual Banco de Dados dentre o tipo escolhido usar.


Deve-se saber a princípio que não se utiliza a estrutura SQL como nos bancos relacionais tais como PostgreSQL, Microsoft SQL Server, etc. Logo, o mongoDB não tem a estrutura bidimensional dos bancos relacionais. Tem-se a n-dimensional, em que:


Tabelas são Collections

Linhas são Documentos

Colunas são Campos

Index continua sendo Index


Além disso, com usabilidade distinta, as seguintes relações de nomenclaturas são usadas para os principais casos de uso:


SELECT é o mesmo que FIND()


INSERT continua sendo INSERT()


DELETE é o mesmo que REMOVE()


DROP continua sendo DROP()


UPDATE continua sendo UPDATE() 




E os operadores de agragação?


WHERE equivale ao operador $MATCH


HAVING também equivale ao operador $MATCH


GROUP BY equivale ao operador $GROUP


ORDER BY equivale ao operador $SORT


LIMIT continua sendo $LIMIT


SUM continua sendo $SUM


COUNT equivale ao operador $SortByCount ou $SUM


JOIN equivale ao operador $LOOKUP


Em bons olhares pode-se ter: Alta escalabilidade tanto vertical quanto horizontal e possui uma vasta disponibilidade de informações, sendo um banco de dados livre (Open Source).

Vale a pena dar uma olhada neste link: 


https://docs.mongodb.com/manual/sharding/


Pela sua popularidade e uso, pode-se perceber que isso não é nem o começo do que o Mongo pode oferecer...


Segundo o site https://db-engines.com/en/ranking, no mês de publicação deste artigo técnico, o MongoDB é o quinto Sistema de Gerenciamento de Banco de Dados mais popular e o primeiro NoSQL da lista.


Mongo possui suporte a diversas linguagens de programação: Python, JavaScript - NodeJS e Java são algumas dessas linguagens...


Assim como outros Bancos de Dados, pode ser usado de duas formas:

  • Com uma linguagem de programação;
  • Através do Shell em ambientes Unix ou no Prompt de Comando em ambientes Windows. 


Iniciando com o MongoDB no mongo shell:


A instalação pode ser realizada via Docker baixando uma imagem do repositório oficial "docker pull mongo" e posteriormente criando um container conforme desejar, ou até mesmo em um ambiente pessoal.


Baixando a imagem do repositório oficial:

Baixando a imagem do mongo no repositório oficial do mongoDB no docker hub

Verificando a imagem baixada:

Verificando a imagem criada no docker

Criando e inicializando um container simples com o comando docker run -d de "detached" + nome da imagem e, em seguida, listando o container que está sendo executado na máquina com docker ps -a:

No alt text provided for this image

Por causa do terminal ampliado para melhor visualização, o nome do container ficou situado na linha de baixo: recursing_jang (exemplo de nome aleatório dado pelo docker)

Executando-o e atrelando o mesmo ao terminal com o "-it":

No alt text provided for this image

.

.

.

No alt text provided for this image

Outra forma para começar com o MongoDB a ser mostrada será no ambiente Debian, ubuntu: 


Executando o comando sudo (para super usuário) apt (gerenciador de pacotes do ubuntu) install (operação a ser realizada) -y (para forçar perguntas de instalação yes ou no com a opção yes) mongo (nome do programa), tem-se:

Instalando mongoDB

.

.

.

Instalando mongo

Iniciando o mongo no shell local com o comando mongo start, ou apenas mongo:

mongo start

Assim como em outros tipos de banco de dados, o símbolo (maior que ">") aparecerá e, pode-se, então, usar comandos como o comando para mostrar os bancos de dados (show dbs) e o comando para usar um banco de dados (Use "nome do Banco de Dados"):

show dbs and use db


Para execução distinta, pode-se usar o comando mongod, conforme a documentação: 


https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/


Pode-se ainda verificar as collections com o (show collections) e então trabalhar com algum banco que queira importar ou criar fazendo usos desses e outros comandos...

show collections


Agora que chegou até aqui é uma boa hora para poder criar bancos e começar a diversão com o MongoDB. É possível manusear outros arquivos como imagens... consulte o link para saber mais: https://docs.mongodb.com/manual/core/gridfs/


Tentar criar um banco e manipulá-lo programando também é uma ótima opção, pois, o MongoDB é schema-free, que permite fazer tudo somente programando!


Links para instalação em outros Sistemas Operacionais e documentação inicial de estudos:

https://docs.mongodb.com/manual/installation/#tutorial-installation

https://docs.mongodb.com/manual/tutorial/getting-started/


Até a próxima!

1
13

Comentários (6)

0
Luiz Rocha

Luiz Rocha

27/04/2021 18:59

Valeu demais Ana Guerra! Muito feliz pelo seu retorno!

1
Ana Guerra

Ana Guerra

25/04/2021 23:55

Meu deus! Melhor explicação, difícil. Gostei muito do conteúdo, compartilhe sempre com a gente sobre temas assim.
Eu tenho interesse por banco de dados e afins, mesmo sendo dev. Mobile... Acredito que é extremamente importante conhecermos o além do que está "disponível" em nossas frentes. Muito bacana, eu tinha visto que o NoSQL pode ou não utilizar dados relacionais, não é porque tem o No que não vai usar o SQL! Bem legal o conteúdo, parabéns.
0
Luiz Rocha

Luiz Rocha

25/04/2021 07:48

Valeu Samuel Costa!


1
Samuel Costa

Samuel Costa

25/04/2021 07:24

muito bom o artigo, parabens!!!

0
Luiz Rocha

Luiz Rocha

24/04/2021 23:26

Obrigado pelo retorno Suleiman Sallum. Bom saber!

1
Suleiman Sallum

Suleiman Sallum

24/04/2021 21:06

Parabéns pelo artigo, coloquei mongoDB na lista para estudar!

https://www.linkedin.com/in/luizr0cha/

Brasil