O que é o MongoDB?

O MongoDB é um banco de dados de documentos conhecido pela facilidade de uso e escalonabilidade. É um tipo de banco de dados NoSQL que usa uma abordagem mais flexível para armazenar dados em comparação com o formato tradicional baseado em tabelas que você encontra em bancos de dados relacionais como o PostgreSQL.

Em vez de linhas e colunas, o MongoDB armazena dados em documentos semelhantes a JSON com campos altamente personalizáveis e valores correspondentes. Este é um exemplo simples de como você pode armazenar um perfil de usuário em um documento:

“_id”: “6327c1a4b3e3e8a5e6f7g6j1”,

“first_name”: “Praveen”,

“occupation”: “Developer”,

“employment_date”: “12/1/2025”

Como o MongoDB tem um esquema flexível, você não precisa usar os mesmos campos em todos os documentos. Você pode remover o campo "occupation", adicionar um campo "email_address" e assim por diante.

No entanto, essa flexibilidade pode causar problemas no futuro se o mesmo tipo de dado for salvo de forma inconsistente entre documentos, como usar um campo "e-mail" em um lugar e "endereço_de_e-mail" em outro ou salvar datas em formatos diferentes.

Se você usasse um banco de dados relacional para armazenar esse tipo de dado, em que alguns perfis de usuário têm uma ocupação no arquivo e outros não, isso poderia levar a tabelas inchadas com muitos campos vazios ou exigir uma estrutura de dados complexa e repetitiva espalhada por várias tabelas.

Quer ir direto para a configuração de um banco de dados orientado a documentos? Saiba como começar a usar o Firestore.

Execute apps compatíveis com o MongoDB no Firestore

Pontos principais

O MongoDB é um banco de dados de documentos NoSQL, ideal para lidar com grandes quantidades de dados não estruturados ou semiestruturados. Confira uma visão geral rápida dos principais recursos e benefícios do MongoDB:

  • Modelo de documento: os dados são armazenados em "documentos" semelhantes a JSON. Ao contrário de um documento no sentido cotidiano da palavra, que contém texto de formato livre para leitores humanos, um documento semelhante a JSON usa pares de campo-valor para organizar os dados de uma forma simples para os aplicativos lerem.
  • Esquema flexível: cada documento no MongoDB pode ter seus próprios campos e estrutura, o que oferece mais flexibilidade do que as colunas e linhas rígidas dos bancos de dados relacionais.
  • Altamente escalonável: o MongoDB foi criado para escalonar horizontalmente, distribuindo a carga de trabalho de maneira eficiente em vários servidores, o que o torna adequado para expandir ou reduzir dados de acordo com as demandas de tráfego.
  • Intuitivo: alguns desenvolvedores preferem o MongoDB porque a linguagem de consulta tem uma estrutura semelhante a linguagens de programação conhecidas, como JavaScript, o que facilita o início do trabalho.
  • Compatibilidade com várias linguagens: com drivers para a maioria das linguagens de programação, incluindo Java, Python e C, é fácil para uma ampla variedade de aplicativos consultar um banco de dados do MongoDB.

Benefícios de usar o MongoDB

O MongoDB, tanto o produto original quanto vários outros bancos de dados compatíveis com ele, se tornou uma escolha popular para desenvolvedores porque oferece flexibilidade considerável em um pacote fácil de usar.

  • Esquema flexível para desenvolvimento ágil: com o MongoDB, você pode adaptar o nível de estrutura e validação do esquema. Você pode começar com uma estrutura flexível para prototipagem rápida e, em seguida, introduzir regras de validação rigorosas e desenvolver seu modelo de dados à medida que o aplicativo amadurece. Se você quiser criar rapidamente sem definir toda a estrutura de dados antecipadamente, a flexibilidade do MongoDB pode ser extremamente útil.
  • Escalonabilidade horizontal para adaptabilidade: o MongoDB foi projetado para escalonabilidade horizontal, permitindo que os dados sejam distribuídos em vários nós ou clusters, um processo conhecido como "fragmentação". Ao compartilhar a carga em vários servidores, você pode salvar ou recuperar dados rapidamente e se ajustar à demanda crescente ou decrescente.
  • Alta disponibilidade: o MongoDB oferece replicação de dados integrada para alta disponibilidade e tolerância a falhas. Em caso de falha de hardware ou durante a manutenção, várias cópias de dados em diferentes servidores de banco de dados permitem que o banco de dados forneça failover automático.

Consultas fáceis de usar no MongoDB

A Linguagem de Consulta do MongoDB (MQL) foi criada para ser imediatamente familiar aos desenvolvedores, principalmente aqueles que conhecem JavaScript. Isso pode facilitar a criação de consultas avançadas para recuperar, atualizar ou excluir dados.

Você tem a flexibilidade de encontrar os dados exatos de que precisa com diferentes tipos de consultas, incluindo:

  • Consulta de campo: encontre uma correspondência exata para um valor específico em todos os documentos, como todos os usuários cujo campo de ocupação é exatamente "Desenvolvedor".
  • Consulta de intervalo: encontre dados que se enquadram em um determinado intervalo, como todos os usuários com mais de 35 anos.
  • Consulta de expressão regular (regex): encontra textos que correspondem a um padrão específico. Por exemplo, você pode encontrar todos os usuários cujo nome começa com a letra "B".

No geral, o MongoDB se destaca na recuperação de informações sobre objetos inteiros. Por exemplo, se você quiser reunir todas as informações sobre um usuário (nome, histórico de pedidos e preferências), é provável que tudo esteja em um documento. Uma única consulta pode buscar tudo o que você precisa rapidamente.

No entanto, o MongoDB é menos eficiente para consultas que exigem JOINs complexos em muitas coleções diferentes e altamente estruturadas, que é onde um banco de dados relacional se destaca.

Casos de uso comuns do MongoDB

O MongoDB é particularmente adequado para várias necessidades de aplicativos modernos, incluindo:

Bancos de dados de documentos como o MongoDB podem ser uma base sólida para a pesquisa semântica que alimenta os modelos de IA, que geralmente precisam lembrar de interações anteriores e preferências do usuário. Os bancos de dados de documentos podem armazenar essa "memória" como documentos JSON ou BSON (JSON binário) flexíveis, permitindo atualizações e recuperação fáceis de estruturas de dados complexas.

O modelo de documento flexível do MongoDB é ideal para armazenar artigos, comentários, dados de usuários e outros conteúdos variados sem esquemas rígidos.

Os produtos de varejo costumam ter atributos diversos (tamanhos, cores, materiais etc.). O MongoDB pode acomodar facilmente esses pontos de dados variáveis.

O MongoDB pode armazenar e processar grandes volumes de dados de sensores, eventos e métricas, permitindo insights em tempo real.

Armazenar preferências do usuário, histórico de navegação e conteúdo personalizado é simples com o formato JSON do MongoDB.

Alternativas ao MongoDB

O MongoDB pode ser a escolha certa de banco de dados para vários aplicativos, principalmente aqueles que dependem de dados semiestruturados ou não estruturados, ou aplicativos em que o modelo de dados provavelmente vai continuar evoluindo. No entanto, vale a pena considerar outras opções de banco de dados para garantir que você faça a escolha certa.

O MongoDB, o Apache Cassandra e os bancos de dados SQL oferecem benefícios distintos dependendo do seu caso de uso específico. Vamos analisar algumas diferenças para ajudar você a escolher a opção certa para seu aplicativo.

Recurso

Bancos de dados SQL (relacionais)

MongoDB (NoSQL)

Apache Cassandra (NoSQL)

Modelo de dados

Tabelar (linhas e colunas)

Documentos semelhantes a JSON

Armazenamento de colunas largas (colunas flexíveis por linha em uma tabela)

Esquema

Esquema rígido e predefinido

Esquema flexível e dinâmico

Mais estruturado do que um banco de dados de documentos, mas com alguma flexibilidade (as colunas podem variar por linha)

Linguagem da consulta

SQL (Structured Query Language)

Linguagem de consulta do MongoDB (MQL)

Linguagem de consulta do Cassandra (CQL)

Escalonabilidade

Vertical (escalonar verticalmente), horizontal complexo

Horizontal (escalonamento horizontal) por fragmentação

Horizontal (escalonamento horizontal) em muitos nós, projetado para distribuição em massa

Estrutura de dados

Dados estruturados

Dados não estruturados, semiestruturados e estruturados

Dados não estruturados, semiestruturados e estruturados

Relacionamentos

Chaves externas e JOINs

Documentos incorporados, referências

Desnormalização

Ideal para

Aplicativos que exigem forte consistência de dados e consultas complexas com JOINs

Desenvolvimento rápido, modelos de dados em evolução e facilidade de uso

Capacidade de processamento de gravação extrema, alta disponibilidade e dados em grande escala

Recurso

Bancos de dados SQL (relacionais)

MongoDB (NoSQL)

Apache Cassandra (NoSQL)

Modelo de dados

Tabelar (linhas e colunas)

Documentos semelhantes a JSON

Armazenamento de colunas largas (colunas flexíveis por linha em uma tabela)

Esquema

Esquema rígido e predefinido

Esquema flexível e dinâmico

Mais estruturado do que um banco de dados de documentos, mas com alguma flexibilidade (as colunas podem variar por linha)

Linguagem da consulta

SQL (Structured Query Language)

Linguagem de consulta do MongoDB (MQL)

Linguagem de consulta do Cassandra (CQL)

Escalonabilidade

Vertical (escalonar verticalmente), horizontal complexo

Horizontal (escalonamento horizontal) por fragmentação

Horizontal (escalonamento horizontal) em muitos nós, projetado para distribuição em massa

Estrutura de dados

Dados estruturados

Dados não estruturados, semiestruturados e estruturados

Dados não estruturados, semiestruturados e estruturados

Relacionamentos

Chaves externas e JOINs

Documentos incorporados, referências

Desnormalização

Ideal para

Aplicativos que exigem forte consistência de dados e consultas complexas com JOINs

Desenvolvimento rápido, modelos de dados em evolução e facilidade de uso

Capacidade de processamento de gravação extrema, alta disponibilidade e dados em grande escala

MongoDB versus bancos de dados SQL

Bancos de dados SQL (como o PostgreSQL) e bancos de dados de documentos NoSQL (como o MongoDB) representam duas abordagens fundamentais para o gerenciamento de dados.

Ao contrário do MongoDB, os bancos de dados SQL, também chamados de bancos de dados relacionais, organizam os dados em tabelas. Cada tabela tem um formato predefinido com linhas e colunas, por isso os bancos de dados SQL são frequentemente referidos como "rígidos" quando comparados com o formato de documento do MongoDB.

O atrativo dos bancos de dados SQL, como o PostgreSQL, é a capacidade de executar consultas complexas com JOINs, combinando informações de várias tabelas com alta eficiência. Isso pode incluir uma consulta como "Mostre os clientes em Chicago, com mais de 30 anos, que compraram uma camisa azul no mês passado".

MongoDB versus Apache Cassandra

O MongoDB e o Apache Cassandra são bancos de dados NoSQL poderosos, mas foram criados com arquiteturas fundamentalmente diferentes e são otimizados para casos de uso distintos.

O Apache Cassandra é um armazenamento de colunas largas, ou seja, ele organiza os dados em linhas e colunas, mas com um esquema flexível que permite que diferentes linhas tenham colunas diferentes na mesma família de colunas.

Ele também é conhecido por lidar com grandes quantidades de dados em vários servidores, oferecendo alta disponibilidade e alto desempenho de gravação em sistemas distribuídos.

Quais bancos de dados são compatíveis com o MongoDB?

Se você quiser criar com o MongoDB, há alguns caminhos para escolher. Você pode adquirir o banco de dados diretamente dos criadores, a MongoDB Inc., ou usar um serviço compatível com o MongoDB de outro provedor. Compatibilidade significa que ele oferece suporte à API e à linguagem de consulta do MongoDB (MQL), permitindo que você use o mesmo código, drivers e ferramentas com o mínimo de alterações, enquanto aproveita recursos adicionais ou benefícios de desempenho.

Confira algumas das opções mais conhecidas compatíveis com o MongoDB:

  • Edições Community e Enterprise do MongoDB: são as versões originais e para download do MongoDB. Você pode executá-las na sua própria infraestrutura, o que dá controle total sobre a implantação.
  • MongoDB Atlas: uma opção de banco de dados como serviço (DBaaS) dos criadores do MongoDB. O Atlas é um serviço de nuvem totalmente gerenciado que cuida de toda a infraestrutura, escalonamento, backups e segurança. Ele é oferecido em várias plataformas de nuvem, incluindo o Google Cloud.
  • Firestore: outra opção totalmente gerenciada para desenvolvedores que querem se concentrar na criação de aplicativos sem se preocupar com as operações. O Firestore é um banco de dados de documentos NoSQL que oferece um conjunto de recursos exclusivos, que vamos abordar com mais detalhes abaixo.
  • Amazon DocumentDB: um serviço de banco de dados gerenciado da Amazon Web Services (AWS) que é compatível com a API do MongoDB. Ele foi projetado como um substituto imediato para aplicativos que já usam o MongoDB e querem ser executados na infraestrutura da AWS.
  • Azure Cosmos DB: o serviço de banco de dados multimodelo distribuído globalmente da Microsoft também fornece uma API para o MongoDB. Isso permite que você use ferramentas e habilidades conhecidas do MongoDB para criar aplicativos na plataforma de nuvem do Azure.

Perguntas frequentes sobre o MongoDB

Um banco de dados de documentos é um tipo de banco de dados NoSQL que armazena dados em unidades flexíveis chamadas "documentos", que normalmente são formatados em uma estrutura semelhante a JSON. Ao contrário de uma tabela com linhas e colunas, esses documentos formatam informações em pares de campo-valor, como "Nome" : "João".

Cada documento geralmente contém dados sobre um objeto, como um produto do seu inventário. Em uma coleção de documentos, você pode usar campos diferentes, o que torna esse tipo de banco de dados excelente quando você não quer criar uma estrutura de dados perfeita antes de começar a criar seu aplicativo ou quando você está armazenando informações sobre objetos com uma ampla variedade de variáveis.

O tipo de banco de dados que você escolhe depende do tipo de dados que você está armazenando, das necessidades do seu aplicativo e da flexibilidade que você precisa.

Um banco de dados de documentos é excelente para dados com muitas variáveis, em que nem todos os objetos precisam dos mesmos campos. A flexibilidade dos bancos de dados de documentos também pode torná-los populares entre os desenvolvedores que querem criar rapidamente com uma estrutura de dados que pode mudar com o tempo.

Por outro lado, um banco de dados relacional é a melhor opção se você quiser uma consistência de dados rigorosa, como contas de usuários em que cada entrada precisa ter exatamente os mesmos campos preenchidos. Se seu aplicativo depende de consultas complexas usando JOINs, extraindo dados de várias tabelas para produzir um resultado, um banco de dados relacional será a ferramenta ideal para o trabalho.

O MongoDB é compatível com uma ampla variedade de linguagens de programação para interagir com o banco de dados, incluindo JavaScript, Python, Java, C#, C++ e várias outras. A Linguagem de Consulta do MongoDB (MQL), usada para operações de banco de dados, é uma linguagem semelhante a JSON.

O MongoDB é considerado geralmente fácil de começar porque o uso de uma estrutura de dados semelhante a JSON (BSON) e um esquema flexível tornam o armazenamento e a recuperação de dados básicos intuitivos para desenvolvedores modernos. No entanto, pode ser mais difícil dominar para casos de uso avançados, principalmente devido à complexidade de projetar modelos de dados eficientes (incorporação vs. referência) e dominar o framework de agregação de várias etapas necessário para consultas complexas e escalonamento de alto desempenho.

O que é o Firestore com capacidade do MongoDB?

O Firestore é um banco de dados de documentos totalmente gerenciado que oferece a simplicidade do gerenciamento de dados na nuvem com integração perfeita ao Firebase, uma plataforma projetada para criar apps e agentes de IA.

O Firestore é totalmente compatível com drivers, ferramentas e código do MongoDB, o que facilita o início de um novo projeto ou a migração de um aplicativo atual, mantendo uma linguagem de consulta e funcionalidade conhecidas.

  • Totalmente gerenciado pelo Google Cloud: toda a administração operacional, como escalonamento, atualizações, backups e segurança, é feita pelo Google.
  • Atualizações em tempo real: mantenha seus usuários conectados com dados em tempo real. O Firestore se destaca na sincronização de dados em tempo real, o que o torna ideal para aplicativos que exigem atualizações ao vivo, como aplicativos de chat, ferramentas colaborativas ou apps para dispositivos móveis com necessidades de atualização instantânea de dados.
  • Escalonabilidade global: com o escalonamento automático e a replicação de dados multirregional do Firestore, você lida com o crescimento sem esforço e garante baixa latência para usuários em todo o mundo, sem precisar configurar capacidade, fragmentação ou provisionar armazenamento.
  • Disponibilidade e desempenho líderes do setor: o Firestore tem alta disponibilidade líder do setor de até 99,999% de SLA e desempenho de latência de leitura de um dígito em milissegundos.
  • Banco de dados vetorial: você pode armazenar embeddings vetoriais e executar pesquisas vetoriais nos seus dados no Firestore. Isso permite realizar pesquisas rápidas por semelhança, que são a base dos aplicativos e agentes de IA modernos.
  • Integração integrada com o Google Cloud: como parte do Google Cloud e do Firebase, o Firestore oferece integração total com o Firebase Auth, o BigQuery e muitos outros serviços avançados.
  • Nível sem custo financeiro para baixo uso : o Firestore oferece um nível sem custo financeiro generoso, o que o torna ideal para startups ou projetos menores que querem escalonar à medida que crescem sem custos iniciais.

Vá além

Conheça um banco de dados de documentos poderoso e escalonável com o nível sem custo financeiro já disponível. Comece a criar no Google Cloud com mais de 20 produtos sem custo financeiro e ganhe US$ 300 em créditos.

Google Cloud