Qualquer banco de dados relacional tem um projeto de esquema típico que mostra o número de tabelas e o relacionamento entre essas tabelas. Enquanto no MongoDB, não há conceito de relacionamento, o que deixa as coisas muito mais simples ( nem sempre mais fácil de entender ) na hora de modelar o seu sistema.
Vamos ver algumas vantagens de MongoDB sobre RDBMS, mais particulamente se tratando à modelagem orientada à documentos
Schema less – MongoDB é um banco de dados de documentos no qual uma coleção contém documentos diferentes. O número de campos, conteúdo e tamanho do documento pode variar de um documento para outro, em outras palavras, uma coleção (tabela) pode ter quantos campos ela quiser. Com isto a estrutura de um único objeto é clara e não há junções complexas, eliminando a complexidade com inúmeros “JOINS” ou chaves estrangeiras. O MongoDB suporta consultas dinâmicas em documentos usando uma linguagem de consulta baseada em documentos (mais especificamente em Json) que é quase tão poderosa quanto SQL.
Então por que usar o MongoDB?
Document Oriented Storage – Os dados são armazenados na forma de documentos de estilo JSON. E você pode trabalhar com índice de qualquer atributo sem problemas. Isto lhe dá uma grande mobilidade do seu sistema crescer e você não sofrer grandes impactos com as modelagens anteriores, como criar um campo novo e ter que colocar nulo para todos os outros, com a modelagem do Mongo você simplesmente iria ignorar este campo e utilizá-lo somente onde ele realmente tivesse algum valor. Imagine só uma API Restful onde o tráfego seria todo em Json, isto lhe daria uma grande facilidade já que esta estrutura é a nativa de leitura/gravação do seu banco de dados.
Veja algumas transcrições de terminologias utilizadas:
SQL Terms/Concepts | MongoDB Terms/Concepts |
---|---|
database | database |
table | collection |
row | document or BSON document |
column | field |
index | index |
table joins | $lookup , embedded documents |
primary key Specify any unique column or column combination as primary key. |
In MongoDB, the primary key is automatically set to the _id field. |
Veja um comparativos de comandos e tipologias de bancos SQL x MongoDB onde você pode ter uma ideia de que realizar querys com MongoDB é tão simples quanto ao modelo TSQL.
Um grande abraço a todos!