MongoDB, Amazon DocumentDB e Azure Cosmos DB
DocumentDB e Cosmos DB falam o protocolo do MongoDB, mas não são MongoDB: são motores diferentes que emulam a API. Isso muda o que funciona, o que custa e o que acontece se você precisar sair.
Visão geral e nomes
Antes de comparar, vale desfazer uma confusão de nomes. Existem dois serviços da AWS e da Azure com "DocumentDB" no nome, e o produto da Microsoft mudou de marca.
MongoDB Community
Servidor gratuito e autogerenciado, SSPL. Você opera tudo.
MongoDB Enterprise Advanced
Assinatura comercial autogerenciada, com Ops Manager, LDAP, Kerberos, auditoria e suporte.
MongoDB Atlas
Serviço gerenciado da MongoDB em AWS, Google Cloud e Azure, com Search, Vector Search e Data Federation.
Amazon DocumentDB
Serviço gerenciado da AWS com compatibilidade com as APIs do MongoDB 4.0, 5.0 e 8.0. Motor próprio, com storage separado da computação.
Azure DocumentDB
Serviço gerenciado da Microsoft baseado no projeto open source DocumentDB (MIT, Linux Foundation). É o antigo "Cosmos DB for MongoDB vCore".
Azure Cosmos DB for MongoDB
API de compatibilidade do Cosmos DB, no modelo de unidades de requisição (RU). A própria Microsoft sugere o Azure DocumentDB para migrar apps MongoDB.
explain(), os planos de consulta e alguns comportamentos podem diferir.Documentação oficialAzure DocumentDB · Cosmos DB for MongoDB · Amazon DocumentDB
Matriz de funcionalidades
Visão lado a lado. Para os produtos MongoDB, os valores seguem o comparativo de edições deste hub. "Ver doc" indica que não confirmei o dado na documentação consultada.
| Funcionalidade | Community | Enterprise Adv. | Atlas | Amazon DocumentDB | Azure DocumentDB | Cosmos DB (RU) |
|---|---|---|---|---|---|---|
| Origem e compatibilidade | ||||||
| Servidor MongoDB original | Sim | Sim | Sim | Emulação | Emulação | Emulação |
| Versões da API | Acompanha o MongoDB | Acompanha o MongoDB | Acompanha o MongoDB | 4.0, 5.0 e 8.0 | 5.0 a 8.0 | Ver doc de suporte por versão |
| Compatibilidade declarada | 100% | 100% | 100% | Parcial | 99,03% dos operadores | Parcial |
| Núcleo do banco | ||||||
| Transações multidocumento | Sim | Sim | Sim | Sim (4.0+) | Sim | Ver doc |
| Change streams | Sim | Sim | Sim | Sim, retenção até 7 dias | Sim | Ver doc |
| Sharding | Manual | Manual | Gerenciado | Elastic clusters | Gerenciado, sem shard key até TBs | Automático |
| Busca de texto | Índice de texto | Índice de texto | Atlas Search | Índice de texto v2 (8.0) | $text e $search | Ver doc |
| Vector search | Preview | Preview | Sim | Sim, via $search | Sim, sem custo extra | Ver doc |
| Operação | ||||||
| Quem opera | Você | Você | MongoDB | AWS | Microsoft | Microsoft |
| Onde roda | Qualquer lugar | Qualquer lugar | AWS, GCP, Azure | Somente AWS (VPC) | Azure; o projeto open source roda em qualquer lugar | Somente Azure |
| Distribuição global | Manual | Manual | Sim | Global clusters | Replicação entre regiões | Multirregião, 5 níveis de consistência |
| Licença do código | SSPL | Comercial | Serviço | Proprietário | MIT (projeto DocumentDB) | Proprietário |
Documentação oficialCompatibilidade do Amazon DocumentDB · Compatibilidade MQL do Azure DocumentDB · Cosmos DB: suporte por versão
Compatibilidade e limitações
"Compatível com o protocolo" não significa "idêntico". Estes são os pontos documentados que costumam aparecer em migrações.
Amazon DocumentDB
| Ponto | O que a documentação diz |
|---|---|
| Cobertura de recursos | Não suporta todos os recursos de cada versão do MongoDB; a AWS prioriza o que os clientes mais pedem. |
| Bancos de sistema | Sem os bancos admin e local e sem coleções system.*. |
| Builds de índice | Apenas um build de índice por coleção por vez; operações concorrentes de índice na mesma coleção falham. |
| Ordenação | Não garante ordem implícita de resultados; é preciso usar sort(). |
| Retryable writes | Suportados a partir do engine 8.0.2. Antes disso, é preciso desativá-los no driver. |
$natural | Só varredura para frente; {$natural: -1} gera erro. |
| Vector search | Não há o estágio $vectorSearch independente; usa-se vectorSearch dentro de $search. |
| mongodump e mongorestore | Use o MongoDB Database Tools até a versão 100.11.0; usuários e roles precisam ser recriados após o restore. |
| TLS | Versões 5.0.1 e 8.0 aceitam apenas TLS 1.2 ou superior. |
Azure DocumentDB
| Ponto | O que a documentação diz |
|---|---|
| Cobertura de operadores | 58 de 60 estágios de agregação, 181 de 181 operadores de agregação, 44 de 45 de consulta e projeção e 22 de 22 de atualização. |
| Estágios não suportados | $changeStreamSplitLargeEvent, $listSearchIndexes, $listSessions, $planCacheStats, $shardedDataDistribution entre outros marcados como "No". |
| Comandos não suportados | bulkWrite (comando), compact, serverStatus, top, dbHash, setDefaultRWConcern. |
| Índices únicos | A criação de índice único obtém lock exclusivo na coleção durante todo o build. |
| Operações administrativas | Como serviço gerenciado, comandos como fsync, shutdown e logRotate não são expostos. |
Azure Cosmos DB for MongoDB (RU)
Documentação oficialDiferenças funcionais do Amazon DocumentDB · Compatibilidade MQL do Azure DocumentDB
Arquitetura e escala
| MongoDB (Atlas, EA, Community) | Amazon DocumentDB | Azure DocumentDB | Cosmos DB (RU) | |
|---|---|---|---|---|
| Modelo | Replica set e sharded cluster, storage por nó | Cluster com instância primária, até 15 réplicas e volume de storage compartilhado | Cluster com shards físicos e standby por shard | Particionamento automático e throughput em RU |
| Storage | Disco por nó (WiredTiger) | Cresce em passos de 10 GB até 256 TiB (engine 8.0) ou 128 TiB | Armazenamento local redundante com 3 réplicas por shard | Gerenciado |
| Escala de leitura | Adicionar secundários | Até 15 réplicas, com lag costumeiramente em milissegundos | Escalar o cluster vertical e horizontalmente | Aumentar RU |
| Escala de escrita | Sharding | Uma instância primária; elastic clusters usam shards | Sharding automático e sem downtime | Automática por partição |
| Modelo de consistência | Configurável por read e write concern | Leitura da réplica com consistência eventual | Replicação síncrona com standby | Cinco níveis de consistência |
Documentação oficialComo o Amazon DocumentDB funciona · Alta disponibilidade no Azure DocumentDB
Alta disponibilidade e backup
| Atlas | Enterprise Adv. / Community | Amazon DocumentDB | Azure DocumentDB | |
|---|---|---|---|---|
| Alta disponibilidade | Replica set com failover automático | Replica set que você opera | Seis cópias em três AZs; failover para até 15 réplicas | Standby por shard com replicação síncrona e SLA de 99,99% com HA ativo |
| Perda de dados no failover | Depende do write concern | Depende do write concern | Storage compartilhado, sem replay de redo log | Sem perda de dados, segundo a documentação |
| Backup contínuo | Cloud Backup com PITR | Ops Manager (EA) ou PBM; manual na Community | Incremental e contínuo, em S3 | Ver doc de backup |
| PITR | Sim | Ops Manager ou PBM | Qualquer segundo, até os últimos 5 minutos | Ver doc de backup |
| Retenção | Configurável | Configurável | Até 35 dias | Ver doc de backup |
Documentação oficialBackup do Amazon DocumentDB · HA do Azure DocumentDB · Atlas Cloud Backup
Segurança
| Recurso | Community | Enterprise Adv. | Atlas | Amazon DocumentDB | Azure DocumentDB |
|---|---|---|---|---|---|
| Criptografia em repouso | Não nativa | KMIP | Gerenciada, BYOK | AWS KMS | Ver doc |
| Criptografia de campo no cliente | Explícita | Sim | Sim | FLE (5.0+) | Ver doc |
| Controle de acesso | RBAC | RBAC, LDAP, Kerberos | RBAC e SSO | RBAC com roles internas | RBAC; gestão de usuários via Microsoft Entra ID |
| Isolamento de rede | Seu firewall | Seu firewall | Private Link e peering | Somente dentro de VPC | Ver doc |
| Conformidade | Sua responsabilidade | Sua responsabilidade | Certificações do Atlas | FedRAMP (Moderate e High) | Ver doc |
Documentação oficialSegurança do Amazon DocumentDB · Segurança do Atlas · Azure DocumentDB
Licença e custo
| Community | Enterprise Adv. | Atlas | Amazon DocumentDB | Azure DocumentDB / Cosmos DB | |
|---|---|---|---|---|---|
| Licença | SSPL | Comercial | Termos do serviço | Termos do serviço AWS | MIT no projeto aberto; termos do serviço Azure |
| Cobrança | Nenhuma | Assinatura | Por camada, storage, rede e backup | Horas de instância, I/O, backup e transferência de dados | Azure DocumentDB por cluster; Cosmos DB RU por throughput |
| Camada gratuita | Sempre | Não | Sim, limitada | Teste gratuito de 1 mês | O Azure DocumentDB inclui vector search até no free tier |
| Custo oculto | Operação e segurança | Licença e operação | Cresce com dados, tráfego e retenção | I/O pode surpreender; há a configuração I/O-optimized | RU exige dimensionar throughput por carga |
Documentação oficialPreços do Amazon DocumentDB · Preços do MongoDB · Preços do Cosmos DB
Prós e contras
Resumo por opção, com base nos pontos documentados acima.
MongoDB Atlas
- MongoDB original, sem diferenças de comportamento
- Roda em AWS, Google Cloud e Azure
- Search, Vector Search, Data Federation e Online Archive
- Backup, escala e atualização gerenciados
- Custo cresce com dados, tráfego e backup
- Dependência de um serviço gerenciado
- Menos controle fino da infraestrutura
MongoDB Enterprise Advanced
- Roda no seu datacenter ou nuvem
- LDAP, Kerberos, auditoria e KMIP
- Ops Manager para backup e automação
- Suporte e SLA da MongoDB
- Licença paga por assinatura
- Você ainda opera o ambiente
- Search autogerenciado ainda em preview
MongoDB Community
- Gratuito e sem dependência de nuvem
- MongoDB original e controle total
- Ótimo para estudo e desenvolvimento
- Sem LDAP, Kerberos, auditoria e criptografia em repouso nativa
- Sem PITR nem backup físico nativos
- Toda a operação é sua
Amazon DocumentDB
- Integração nativa com VPC, KMS, CloudWatch e DMS
- Storage cresce sozinho até 256 TiB e até 15 réplicas
- Backup contínuo com PITR até 35 dias
- FedRAMP e vector search integrado
- Não é MongoDB: compatibilidade parcial e planos de consulta diferentes
- Somente AWS, o que gera lock-in
- Uma única instância primária para escrita (fora dos elastic clusters)
- Limites como um build de índice por coleção
Azure DocumentDB
- Base aberta (MIT, Linux Foundation), sem SSPL
- 99,03% de compatibilidade de operadores declarada
- Vector search sem custo extra, até no free tier
- HA com standby síncrono e SLA de 99,99%
- Pode rodar fora da Azure com o projeto aberto
- Produto recém-rebatizado: nomes e docs antigos confundem
- Não é MongoDB; faltam alguns comandos e estágios
- Índice único bloqueia a coleção durante o build
- Menos maturidade de ecossistema que o Atlas
Azure Cosmos DB for MongoDB (RU)
- Distribuição global multirregião
- Cinco níveis de consistência
- Particionamento automático e Synapse Link
- Integração com o restante do Cosmos DB
- Modelo de RU exige planejar throughput
- A Microsoft indica o Azure DocumentDB para apps MongoDB
- Não é MongoDB; comportamento e recursos podem diferir
- Somente Azure
Como escolher
| Se o seu cenário é... | Considere | Por quê |
|---|---|---|
| Quer o MongoDB completo, gerenciado, em qualquer nuvem | Atlas | É o único com o servidor original, Search e Vector Search maduros e multicloud. |
| Toda a stack já está na AWS e a aplicação usa um subconjunto simples da API | Amazon DocumentDB | Integração nativa com VPC, KMS e CloudWatch. Teste a compatibilidade antes. |
| Toda a stack está na Azure e o app é MongoDB | Azure DocumentDB | É o caminho recomendado pela Microsoft para apps MongoDB. |
| Precisa de distribuição global com consistência ajustável na Azure | Cosmos DB (RU) ou Cosmos DB for NoSQL | Foco em escala e SLA, com a API própria. |
| Exigência regulatória de datacenter próprio | Enterprise Advanced | Segurança avançada e Ops Manager sem nuvem pública. |
| Quer evitar a SSPL com um motor aberto | Azure DocumentDB (projeto open source) | Licença MIT e governança da Linux Foundation. |
| Estudo, laboratório, desenvolvimento local | Community | Gratuito e idêntico ao MongoDB de produção. |
explain() diferente costumam aparecer só nesse teste.Documentação oficialMigrar para o Amazon DocumentDB · Atlas Live Migration