Observação
For the duration of public preview, Atlas Infinite clusters run the latest MongoDB 9.x version, using the Latest Version With Auto Upgrades release option in the Atlas UI. To learn more, see MongoDB Versions in Atlas.
O MongoDB é um banco de dados de documento projetado para ajudar os desenvolvedores a criar aplicativos modernos com mais rapidez. Ele armazena dados em documentos flexíveis semelhantes a JSON, facilitando a modelagem de dados da mesma forma que o código do aplicativo os utiliza. O esquema flexível permite que você evolua seu modelo de dados sem tempo de inatividade, itere de forma rápida e lida facilmente com dados não uniformes.
O MongoDB oferece um mecanismo de query eficiente, dimensionamento horizontal e alta disponibilidade integrada para que você possa fornecer suporte a tudo, de prototipagem rápida a grandes cargas de trabalho críticas.
O MongoDB é um banco de dados operacional totalmente transacional que oferece suporte a uma ampla variedade de tipos de carga de trabalho, incluindo:
Arquitetura principal
O MongoDB é baseado em vários componentes de arquitetura principais que o distinguem dos bancos de dados relacionais:
Banco de dados de documentos: o modelo flexível de dados de documento permite mapear seus dados de acordo com as necessidades do seu aplicativo.
Transações: as transações ACID de vários documentos permitem operações complexas que exigem consistência de dados.
Alta disponibilidade: a replicação e o failover automático garantem que seus dados estejam sempre disponíveis.
Horizontal Scaling: Sharding enables horizontal scaling to handle large datasets and high throughput.
Banco de dados de documentos
Um registro no MongoDB é um documento, que é uma estrutura de dados composta de pares de campos e valores. Os documentos MongoDB são semelhantes aos objetos JSON . Os valores dos campos podem incluir outros documentos, matrizes e matrizes de documentos.
O modelo de dados flexível orientado a objetos do MongoDB permite estruturar dados de uma forma que espelhe os modelos de objeto em sua base de código. Isso elimina a necessidade do mapeamento complexo objeto-relacional exigido ao usar bancos de dados relacionais.
Aqui está um exemplo de um documento MongoDB que mostra como os documentos podem expressar dados complexos e hierárquicos em um formato que espelha o modelo de objetos do seu aplicativo:
{ _id: ObjectId("507f1f77bcf86cd799439011"), name: "Alice", birthdate: ISODate("1990-01-01T00:00:00Z"), address: { street: "123 Main St", city: "Springfield", state: "IL" }, hobbies: ["reading", "hiking", "coding"] }
As vantagens adicionais do modelo de dados de documento são:
Os documentos correspondem a tipos de dados nativos em linguagens de programação.
Documentos incorporados e arrays reduzem a necessidade de junções dispendiosas que podem diminuir o desempenho.
Os esquemas dinâmicos suportam o polimorfismo, que permite estruturas diversas entre documentos na mesma coleção.
O MongoDB armazena documentos em Coleções. As coleções são semelhantes às tabelas relacionais, mas não impõem um esquema rígido e predefinido.
Além das coleções, o MongoDB oferece suporte a visualizaçõessomente leitura.
Transações
O MongoDB oferece suporte a transações multidocumento, que permitem executar várias operações de leitura e gravação como um único evento de tudo ou nada.
As principais funcionalidades da transação incluem:
Garantias ACID: as transações fornecem atomicidade, consistência, isolamento e durabilidade em várias operações.
Operações de vários documentos: você pode executar operações complexas que abrangem vários documentos enquanto mantêm a consistência dos dados.
Transações distribuídas: você pode coordenar transações em clusters fragmentados com as mesmas garantias ACID.
Para saber mais, consulte Transações.
Alta disponibilidade
O mecanismo de replicação integrado do MongoDB oferece failover automático, redundância de dados e maior capacidade de leitura. Com o failover automático, se o servidor primário ficar indisponível, o cluster elegerá automaticamente um novo primário, o que garante que as gravações permaneçam disponíveis. Além disso, várias cópias de seus dados são armazenadas em diferentes servidores para melhorar a durabilidade dos dados.
Dimensionamento horizontal
O MongoDB suporta nativamente o dimensionamento horizontal por meio de uma técnica chamada Fragmentação.
Os principais recursos de fragmentação incluem:
Distribuição automática de dados: o MongoDB particiona automaticamente os dados com base em uma chave de fragmento e os distribui por um cluster de máquinas.
fragmentação de zona: você pode definir zonas geográficas para controlar a colocação de documentos com base em faixas de chaves de fragmento.
Refinamento da chave de fragmento: você pode refinar sua chave de fragmento para melhorar o desempenho à medida que seu aplicativo desenvolve.