MongoDB é um banco de dados de documentos de propósito geral projetado para o desenvolvimento de aplicativos modernos e para a cloud. Sua arquitetura de expansão permite que você atenda à crescente demanda do seu sistema adicionando mais nós para compartilhar a carga.
Aqui estão alguns dos principais conceitos e termos que você encontrará ao aprender sobre o MongoDB.
O MongoDB armazena dados como documentos JSON.
O modelo de dados de documentos se mapeia naturalmente para objetos no código do aplicativo, tornando mais fácil para os desenvolvedores aprenderem e usarem.
Os campos em um documento JSON podem variar de um documento para outro. É como uma tabela tradicional de banco de dados relacional, em que adicionar um campo significa adicionar uma coluna à própria tabela de banco de dados e, portanto, a todos os registros no banco de dados.
Os documentos podem ser aninhados para expressar relações hierárquicas e armazenar estruturas, como arrays.
O document model garante flexibilidade para lidar com dados complexos, dinâmicos e desorganizados de várias fontes. Ele permite que os desenvolvedores entreguem rapidamente novas funcionalidades de aplicativos.
Para permitir acesso interno mais rápido e ser compatível com mais tipos de dados, o MongoDB converte documentos em um formato chamado BSON (JSON Binário). Mas, do ponto de vista do desenvolvedor, o MongoDB é um banco de dados JSON.
No MongoDB, uma coleção é um grupo de documentos.
Se você já conhece bancos de dados relacionais, pode considerar uma coleção como uma tabela. Mas as coleções no MongoDB são muito mais flexíveis. As coleções não impõem um esquema, a menos que você as configure para isso. Além disso, os documentos em uma mesma coleção podem ter campos diferentes.
Cada coleção está associada a um banco de dados MongoDB. Para mostrar quais coleções estão em um banco de dados específico, use o comando listCollections.
Uma maneira importante de garantir alta disponibilidade é manter mais de uma cópia dos seus dados. No MongoDB, a alta disponibilidade é inerente a ele.
Quando você cria um banco de dados no MongoDB, o sistema cria automaticamente pelo menos mais duas cópias dos dados, chamadas de conjunto de réplicas. Um conjunto de réplicas é um grupo de pelo menos três instâncias do MongoDB que replicam dados continuamente entre si, oferecendo redundância e proteção contra tempo de inatividade em caso de falha do sistema ou manutenção planejada.
Uma plataforma de dados moderna deve conseguir lidar com queries muito rápidas e conjuntos de dados enormes usando clusters cada vez maiores de máquinas pequenas. Fragmentação é um termo que significa distribuir dados de forma inteligente em várias máquinas.
Como funciona a fragmentação no MongoDB? O MongoDB fragmenta os dados no nível da coleção, distribuindo os documentos de uma coleção entre os fragmentos em um cluster. O resultado é uma arquitetura escalável que é compatível até mesmo com os maiores aplicativos.
Índices permitem a execução eficiente de queries. O MongoDB oferece diversas estratégias de indexação, incluindo índices compostos em múltiplos campos. Quando bem escolhidos, os índices aceleram as queries porque elas leem o índice em vez de lerem todos os documentos da coleção.
Entretanto, ainda é necessário analisar em quais queries pode ser vantajoso adicionar um índice. Uma ferramenta que realiza essa análise para você é o Performance Advisor, que analisa queries e sugere índices que melhorariam o desempenho delas.
O MongoDB oferece uma estrutura flexível para criar pipelines de processamento de dados chamadas pipelines de agregação. Ele apresenta dezenas de estágios e mais de 150 operadores e expressões, permitindo que você processe, transforme e analise dados de qualquer estrutura em grande escala. Uma adição recente é o estágio Union, que agrega resultados de várias coleções de forma flexível.
Quais linguagens você pode usar com o MongoDB? A lista de linguagens permitidas inclui Node.js, C, C++, C#, Go, Java, Perl, PHP, Python, Ruby, Rust, Scala, Swift e muitos mais. A biblioteca para cada linguagem é mantida ativamente, o que significa que é atualizada com novos recursos, correções de bugs, patches de segurança e melhorias de desempenho.
Você pode monitorar a integridade e o desempenho do seu cluster verificando o status da instância, operações do cluster e métricas de conexões, métricas de hardware e muito mais com apenas alguns utilitários e comandos. O monitoramento pode ajudar você a detectar e resolver problemas em tempo real antes que se tornem significativos.
O MongoDB começou como um banco de dados de código aberto e ainda pode ser usado dessa forma através do MongoDB Community Edition. No MongoDB Enterprise Edition, recursos avançados estão disponíveis por meio de uma licença comercial. O MongoDB Atlas é uma versão de banco de dados como serviço (DBaaS) do MongoDB Enterprise Edition que é oferecida em todas as nuvens públicas. O MongoDB Atlas foi ampliado de várias maneiras com funcionalidades incorporadas e totalmente integradas, como Atlas Search, Atlas Vector Search, e outros recursos avançados para geolocalizar dados e fazer backups.
Agora que você já conhece algumas das terminologias que encontrará ao aprender sobre o MongoDB, por que já não começar usando o MongoDB Atlas? Enquanto você faz isso, junte-se à MongoDB Community, que oferece de tudo, desde fóruns a webinars e cursos gratuitos da MongoDB University. Um bom ponto de partida é o curso introdutório Noções básicas do MongoDB.
O MongoDB é um banco de dados de uso geral, com uma ampla variedade de casos de uso. Se você ainda está pensando se o MongoDB é a escolha certa para seu aplicativo, confira o artigo Por que usar o MongoDB?.
Saiba mais na nossa série sobre fundamentos do MongoDB.