Introdução
O MongoDB é uma base de dados NoSQL orientado a documentos, que difere das bases de dados tradicionais baseados em modelo relacional. Em vez de armazenar dados em tabelas bidimensionais com linhas e colunas, o MongoDB armazena informações em documentos no formato BSON, que é uma versão binária do JSON. Isso permite que os dados sejam estruturados em pares chave-valor, com suporte a documentos aninhados e arrays, favorecendo uma modelagem mais flexível e natural para muitos tipos de aplicações.
Caracteriza-se por ser um sistema de código aberto, escrito em C++, multiplataforma e sem esquema fixo, permitindo que cada documento numa coleção possa ter uma estrutura diferente, sem a necessidade de pré-definir tipos ou restrições rígidas. Essa flexibilidade é uma das vantagens mais notáveis do MongoDB, especialmente em aplicações que evoluem rapidamente, onde o esquema dos dados pode mudar com frequência. Além disso, o MongoDB oferece alta performance, suporte a índices para acelerar consultas, replicação para alta disponibilidade, e escalabilidade horizontal via fragmentação (sharding), características que o tornam escalável para grandes volumes de dados e aplicações distribuídas.
A estrutura interna do MongoDB é composta por bases de dados, coleções (equivalentes às tabelas em bancos relacionais) e documentos (registos no formato JSON/BSON). A consulta e manipulação dos dados são feitas usando uma API que permite operações CRUD (Criar, Ler, Atualizar, Excluir) e consultas complexas, tudo com sintaxe baseada em JavaScript. MongoDB é amplamente adotado por grandes empresas e projetos, especialmente em contextos que exigem agilidade no desenvolvimento, tratamento de dados semi-estruturados ou não estruturados, e integração com linguagens de programação modernas.
Em resumo, o MongoDB representa uma mudança significativa de paradigma em bancos de dados, movendo-se do rígido modelo relacional para um formato mais flexível, orientado a documentos, ideal para a era dos dados dinâmicos e aplicações web modernas.
Conceitos básicos
- Base de dados: conjunto de coleções.
- Coleção: conjunto de documentos.
- Documento: unidade de dados JSON-like armazenada no formato BSON.
- Campo: chave-valor dentro de um documento.
Exemplo de um documento:
{
"_id": "12345",
"nome": "João",
"idade": 30,
"endereços": [
{ "tipo": "residencial", "cidade": "Lisboa" },
{ "tipo": "trabalho", "cidade": "Porto" }
]
}
