DEV Community

Cover image for MongoDB - O banco NoSQL mais utilizado no mundo
 Paulo Benjamin
Paulo Benjamin

Posted on

MongoDB - O banco NoSQL mais utilizado no mundo

O MongoDB é um banco de dados NoSQL que foi lançado em 2009. De lá pra cá, este banco de dados tem crescido em utilização e em popularidade. Hoje já estamos na versão 6.0 dele. Mas, qual a diferença dela para outros bancos de dados como SQL Server, Oracle ou MySQL?
O MongoDB é um banco de dado que não armazena os dados em um formato tabelar e relacional. Os documentos são armazenados em "documentos".
Os documentos são expressos no tão conhecido formato JSON, e armazenados no formato BSON (que não significa um JSON armazenado em binário, mas sim uma serialização binária de json). Este formato armazena os dados de maneira tipada, diferente do JSON.
Dessa forma, informações que seriam expressas assim em um banco relacional:

id nome titulo email linkedin
1 Paulo Benjamin Consultor MongoDB paulo.benjamin@phdatatech.com linkedin.com/in/pcjuniorrj

Passam a ser expressas assim:

{
    id: 1,
    nome: "Paulo Benjamin",
    titulo: "Consultor MongoDB",
    email: "paulo.benjamin@phdatatech.com",
    linkedin: "linkedin.com/in/pcjuniorrj"
}
Enter fullscreen mode Exit fullscreen mode

A princípio parece simplesmente uma mudança na forma como os dados são visualizados e armazenados, mas essa diferença é bem mais profunda. Com essas alterações, podemos utilizar toda a flexibilidade do JSON para guardar as informações. Assim, o documento acima poderia ser convertido para o seguinte:

{
    id: 1,
    nome: "Paulo Benjamin",
    titulo: "Consultor MongoDB",
    contato: [
        {tipo: "email", contato: "paulo.benjamin@..."},
        {tipo: "linkedin", contato: "@pcjuniorrj"}
    ],
    stacks: [
        "MongoDB",
        "SQL Server",
        "Oracle",
        "MySQL",
        "Redis"
    ]
}
Enter fullscreen mode Exit fullscreen mode

Para armazenar o documento acima, seriam necessárias pelo menos 3 tabelas. E aí começamos a ter vantagens na utilização do MongoDB. As consultas passam a ser mais rápidas já que evitamos a utilização de joins a todo custo. A comparação entre os dados armazenados e os objetos de uma aplicação se tornam mais fáceis.
Outro ponto é que o MongoDB permite uma flexibilidade muito grande do esquema. Assim, para converter o primeiro documento no segundo modelo, basta um update, o que facilita muito a implementação e evoluções do esquema de dados de uma aplicação.
No entanto, estas facilidades vêm com responsabilidades. É importante lembrar que o MongoDB não vai criticar a inserção de um documento sem um campo, ou com o nome do campo errado. Essa abstração e responsabilidade, assim como outras, ficam a cargo da aplicação.
Por isso, Devs, lembrem-se: "Com grandes poderes vem grandes responsabilidades" - Tio Ben/Tia May.

Top comments (2)

Collapse
 
justin_pruitt_00ef63c8716 profile image
Justin Pruitt

Oi Paulo, artigo legal e conciso. Como podemos correlacionar com o uso do JSON Schema validation para casos em que quero que o banco critique uma tentativa de inserção/update indesejada? Obrigado!

Collapse
 
magnorsantos profile image
MagnoRSantos

Dá uma olhada nesse vídeo, acho que te ajuda nessa questão de validações.
youtube.com/watch?v=34XWrndyVcI