

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Compatibilidade do Amazon DocumentDB com MongoDB
<a name="compatibility"></a>

O Amazon DocumentDB oferece suporte à compatibilidade com o MongoDB, incluindo MongoDB 4.0, MongoDB 5.0 e MongoDB 8.0. A compatibilidade com o MongoDB significa que a grande maioria das aplicações, drivers e ferramentas que você já usa atualmente com seus bancos de dados MongoDB pode ser usada com o Amazon DocumentDB com pouca ou nenhuma alteração. Esta seção descreve tudo o que você precisa saber sobre a compatibilidade do Amazon DocumentDB com o MongoDB, incluindo novos recursos e recursos, conceitos básicos, caminhos de migração e diferenças funcionais.

**Topics**
+ [Compatibilidade com MongoDB 8.0](#mongodb-80)
+ [Compatibilidade com MongoDB 5.0](#mongodb-50)
+ [Compatibilidade do MongoDB 4.0](#mongodb-40)

## Compatibilidade com MongoDB 8.0
<a name="mongodb-80"></a>

**Topics**
+ [O que há de novo no Amazon DocumentDB 8.0](#compatibility-whatsnew-8)
+ [Conceitos básicos do Amazon DocumentDB](#compatibility-getstarted-5)
+ [Atualize ou migre para o Amazon DocumentDB 5.0 ou 8.0](#compatibility-upgrade-5)
+ [Diferenças funcionais](#compatibility-differences-5)

### O que há de novo no Amazon DocumentDB 8.0
<a name="compatibility-whatsnew-8"></a>

O Amazon DocumentDB 8.0 melhora o desempenho das consultas em até 7x e melhora a taxa de compactação em até 5x, permitindo que você crie aplicativos de alto desempenho a um custo menor. O Amazon DocumentDB 8.0 tem total compatibilidade de protocolo com fio com o MongoDB 8.0. O resumo abaixo apresenta alguns dos principais recursos que foram introduzidos no Amazon DocumentDB 8.0. Para ver uma lista completa dos novos recursos, consulte [Notas da versão](release-notes.md).
+ Fornece compatibilidade com o MongoDB 8.0 adicionando suporte aos drivers de API do MongoDB 8.0. Também oferece suporte a aplicativos criados usando as versões 6.0 e 7.0 da API MongoDB.
+ O novo planejador de consultas no Amazon DocumentDB 8.0 estende as melhorias de desempenho aos operadores do estágio de agregação, além de oferecer suporte a otimizações de pipeline de agregação e comandos distintos.
+ O Amazon DocumentDB 8.0 oferece suporte a agrupamentos e visualizações.
+ Oferece 6 novos estágios de agregação: $replaceWith, $vectorSearch, $merge, $set, $unset, $bucket e 3 novos operadores de agregação $pow, $rand, $dateTrunc.
+ Uma nova versão do índice de texto: o índice de texto v2 no Amazon DocumentDB 8.0 introduz tokens adicionais, aprimorando os recursos de pesquisa de texto.
+ Por meio da criação paralela de índices vetoriais, o Amazon DocumentDB 8.0 reduz o tempo de criação do índice em até 30 vezes.

### Comece a usar o Amazon DocumentDB 8.0
<a name="compatibility-getstarted-5"></a>

[Para começar a usar o Amazon DocumentDB 8.0, consulte o Guia de introdução.](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html) Você pode criar um novo cluster do Amazon DocumentDB 8.0 usando o Console de gerenciamento da AWS ou o AWS SDK, ou. AWS CLI CloudFormation Ao se conectar ao Amazon DocumentDB, é necessário que você use um driver ou utilitário do MongoDB compatível com o MongoDB 5.0 ou superior.

**nota**  
Ao usar o AWS SDK, ou AWS CLI CloudFormation, a versão do mecanismo será 5.0.0 como padrão. Você deve especificar explicitamente o parâmetro `engineVersion = 8.0.0` para criar um novo cluster Amazon DocumentDB 8.0 `engineVersion = 4.0.0` ou criar um novo cluster Amazon DocumentDB 4.0 `engineVersion = 3.6.0` ou criar um novo cluster Amazon DocumentDB 3.6. Para um determinado cluster do Amazon DocumentDB, você pode determinar a versão do cluster usando o AWS CLI para chamar `describe-db-clusters` ou usar o console de gerenciamento do Amazon DocumentDB para visualizar o número da versão do mecanismo de um determinado cluster.

O Amazon DocumentDB 5.0 e 8.0 oferece suporte ao processador Amazon EC2 `r8g` Graviton4 e aos processadores Graviton2, como tipos de `t4.medium` instância para seus clusters, `r6g` e está disponível em todas as regiões suportadas (consulte). [Instâncias](what-is.md#what-is-db-instances) Para obter mais informações sobre preços, consulte [Preços do Amazon DocumentDB (compatível com MongoDB)](https://aws.amazon.com/documentdb/pricing/).

### Atualize ou migre para o Amazon DocumentDB 5.0 ou 8.0
<a name="compatibility-upgrade-5"></a>

[Você pode migrar do MongoDB 3.6 ou MongoDB 4.0 para o Amazon DocumentDB 5.0 ou Amazon DocumentDB 8.0 usando utilitários como,, e. [AWS DMS](https://aws.amazon.com/dms/)`mongodump``mongorestore``mongoimport``mongoexport`](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html) Para obter instruções sobre como mitigar, consulte [Atualizando seu cluster Amazon DocumentDB usando AWS Database Migration Service](docdb-migration.versions.md).

### Diferenças funcionais
<a name="compatibility-differences-5"></a>

#### Diferenças funcionais entre o Amazon DocumentDB 5.0 e 8.0
<a name="w2aac13b9c11b3"></a>

Com o lançamento do Amazon DocumentDB 8.0, há diferenças funcionais entre o Amazon DocumentDB 5.0 e o Amazon DocumentDB 8.0:
+  O Planner v1 é o planejador de consultas padrão no Amazon DocumentDB 5.0, enquanto o Planner v3 com melhor desempenho é o padrão no Amazon DocumentDB 8.0. 
+  Novos recursos no Amazon DocumentDB 8.0, incluindo visualizações, agrupamento e operadores como $merge, são compatíveis somente com o Planner v3.
+  A compactação é ativada por padrão no Amazon DocumentDB 8.0 e está configurada para usar o algoritmo Zstandard. Além disso, no Amazon DocumentDB 8.0, 'ativado' não é mais uma opção válida; você pode selecionar entre Zstd, LZ4 e nenhuma. 

## Compatibilidade com MongoDB 5.0
<a name="mongodb-50"></a>

**Topics**
+ [Novidades do Amazon DocumentDB 5.0](#compatibility-whatsnew-5)
+ [Conceitos básicos do Amazon DocumentDB 5.0](#compatibility-getstarted-5)
+ [Atualize ou migre para o Amazon DocumentDB 5.0](#compatibility-upgrade-5)
+ [Diferenças funcionais](#compatibility-differences-5)

### Novidades do Amazon DocumentDB 5.0
<a name="compatibility-whatsnew-5"></a>

O Amazon DocumentDB 5.0 introduz novos recursos e capacidades que incluem limites de armazenamento e criptografia em nível de campo do lado do cliente. O resumo abaixo apresenta alguns dos principais recursos que foram introduzidos no Amazon DocumentDB 5.0. Para ver uma lista completa dos novos recursos, consulte [Notas da versão](release-notes.md).
+ Aumento do limite de armazenamento para 128 TiB para todos os clusters do Amazon DocumentDB baseados em instâncias e clusters elásticos baseados em fragmentos.
+ Introdução do Amazon DocumentDB 5.0 Engine (versão 3.0.775)
  + Suporte para drivers de API do MongoDB 5.0
  + Support for Client-side Field Level Encryption (FLE). Agora você pode criptografar campos no lado do cliente antes de gravar os dados no cluster do Amazon DocumentDB. Para obter mais informações, consulte [Criptografia em nível de Client-side campo](https://docs.aws.amazon.com/documentdb/latest/developerguide/field-level-encryption.html).
  + Novos operadores de agregação: `$dateAdd`, `$dateSubtract`
  + Suportes para índices com operador `$elemMatch`. Como resultado, as consultas `$elemMatch` resultarão em varreduras de índice.

O Amazon DocumentDB não oferece suporte a todos os atributos do MongoDB 5.0. Quando criamos o Amazon DocumentDB 5.0, trabalhamos de trás para frente com base nos atributos e nas capacidades que nossos clientes mais pediram que criássemos. Continuaremos adicionando recursos adicionais do MongoDB 5.0 com base no feedback dos clientes. Para obter a lista mais recente de APIs compatíveis, consulte [APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB](mongo-apis.md).

### Conceitos básicos do Amazon DocumentDB 5.0
<a name="compatibility-getstarted-5"></a>

Para começar a usar o Amazon DocumentDB 5.0, consulte o [Guia de conceitos básicos](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html). Você pode criar um novo cluster Amazon DocumentDB 5.0 usando o Console de gerenciamento da AWS ou o AWS SDK, AWS CLI ou. CloudFormation Ao se conectar ao Amazon DocumentDB, é necessário que você use um driver ou utilitário do MongoDB compatível com o MongoDB 5.0 ou superior.

**nota**  
Ao usar o AWS SDK, ou AWS CLI CloudFormation, a versão do mecanismo será 5.0.0 como padrão. É necessário especificar explicitamente o parâmetro `engineVersion = 4.0.0` para criar um novo cluster do Amazon DocumentDB 4.0 ou `engineVersion = 3.6.0` para criar um novo cluster do Amazon DocumentDB 3.6. Para um determinado cluster do Amazon DocumentDB, você pode determinar a versão do cluster usando o AWS CLI para chamar `describe-db-clusters` ou usar o console de gerenciamento do Amazon DocumentDB para visualizar o número da versão do mecanismo de um determinado cluster.

O Amazon DocumentDB 5.0 e 8.0 oferece suporte ao processador Amazon EC2 `r8g` Graviton4 e aos processadores Graviton2, como tipos de `t4.medium` instância para seus clusters, `r6g` e está disponível em todas as regiões suportadas (consulte). [Instâncias](what-is.md#what-is-db-instances) Para obter mais informações sobre preços, consulte [Preços do Amazon DocumentDB (compatível com MongoDB)](https://aws.amazon.com/documentdb/pricing/).

### Atualize ou migre para o Amazon DocumentDB 5.0
<a name="compatibility-upgrade-5"></a>

[É possível migrar do MongoDB 3.6 ou do MongoDB 4.0 para o Amazon DocumentDB 5.0 usando o [AWS DMS](https://aws.amazon.com/dms/) ou utilitários como `mongodump`, `mongorestore`, `mongoimport` e `mongoexport`](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html). Para obter instruções sobre como mitigar, consulte [Atualizando seu cluster Amazon DocumentDB usando AWS Database Migration Service](docdb-migration.versions.md).

### Diferenças funcionais
<a name="compatibility-differences-5"></a>

#### Diferenças funcionais entre Amazon DocumentDB 4.0 e 5.0
<a name="w2aac13c13c11b3"></a>

Com o lançamento do Amazon DocumentDB 5.0, há diferenças funcionais entre o Amazon DocumentDB 4.0 e o Amazon DocumentDB 5.0:
+ A função integrada de backup agora é compatível com `serverStatus`. Ação: desenvolvedores e aplicações com função de backup podem coletar estatísticas sobre o estado do cluster Amazon DocumentDB.
+ O campo `SecondaryDelaySecs` substitui `slaveDelay` na saída `replSetGetConfig`.
+ O comando **hello** substitui `isMaster` - **hello** retorna um documento que descreve a função do cluster Amazon DocumentDB.
+ O Amazon DocumentDB 5.0 agora oferece suporte a escaneamentos de índice com o operador `$elemMatch` no primeiro nível de agrupamento. As varreduras de índice são aceitas quando o filtro de consulta tem apenas um nível do filtro `$elemMatch`, mas não são aceitas se uma consulta aninhada `$elemMatch` for incluída.

  Por exemplo, no Amazon DocumentDB 5.0, se você incluir o operador `$elemMatch` no nível aninhado, ele não retornará um valor como no Amazon DocumentDB 4.0:

  ```
  db.foo.insert(
  [
      {a: {b: 5}},
      {a: {b: [5]}},
      {a: {b: [3, 7]}},
      {a: [{b: 5}]},
      {a: [{b: 3}, {b: 7}]},
      {a: [{b: [5]}]},
      {a: [{b: [3, 7]}]},
      {a: [[{b: 5}]]},
      {a: [[{b: 3}, {b: 7}]]},
      {a: [[{b: [5]}]]},
      {a: [[{b: [3, 7]}]]}
  ]);
  
  // DocumentDB 5.0
  > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0})
  { "a" : [ { "b" : [ 5 ] } ] }
  
  // DocumentDB 4.0
  > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0})
  { "a" : [ { "b" : [ 5 ] } ] }
  { "a" : [ [ { "b" : [ 5 ] } ] ] }
  ```
+ A projeção “$” no Amazon DocumentDB 4.0 retorna todos os documentos com todos os campos. Com o Amazon DocumentDB 5.0, o comando **find** com uma projeção “$” retorna documentos que correspondem ao parâmetro de consulta contendo somente o campo que corresponde à projeção “$”.
+ No Amazon DocumentDB 5.0, os comandos **find** com parâmetros de consulta `$regex` e `$options` retornam um erro: “Não é possível definir opções em `$regex` e `$options`”.
+ Com o Amazon DocumentDB 5.0, `$indexOfCP` agora retorna “-1" quando:
  + a substring não foi encontrada na expressão da string, ou
  + inicia-se com um número maior que o final, ou
  + inicia-se com um número maior que o comprimento do byte da string.
+ No Amazon DocumentDB 4.0, `$indexOfCP` retorna “0" quando a posição inicial é um número maior que o final ou o comprimento do byte da string.
+ Com o Amazon DocumentDB 5.0, as operações de projeção em `_id fields`, como por exemplo `{"_id.nestedField" : 1}`, retornam documentos que incluem apenas o campo projetado. Já no Amazon DocumentDB 4.0, os comandos de projeção de campo aninhados não filtram nenhum documento.

## Compatibilidade do MongoDB 4.0
<a name="mongodb-40"></a>

**Topics**
+ [Atributos do Amazon DocumentDB 4.0](#compatibility-whatsnew)
+ [Conceitos básicos do Amazon DocumentDB 4.0](#compatibility-getstarted)
+ [Atualizar ou migrar para o Amazon DocumentDB 4.0](#compatibility-upgrade)
+ [Diferenças funcionais](#compatibility-differences)

### Atributos do Amazon DocumentDB 4.0
<a name="compatibility-whatsnew"></a>

O Amazon DocumentDB 4.0 introduziu muitos novos atributos e capacidades, que incluíram transações ACID e melhorias para alterar fluxos. O resumo abaixo apresenta alguns dos principais atributos que foram introduzidos no Amazon DocumentDB 4.0. Para ver uma lista completa dos recursos, consulte [Notas da versão](release-notes.md).
+ **Transações ACID**: o Amazon DocumentDB agora oferece suporte à capacidade de realizar transações em vários documentos, declarações, coleções e bancos de dados. As transações simplificam o desenvolvimento de aplicações, permitindo que você execute operações atômicas, consistentes, isoladas e duráveis (ACID) em um ou mais documentos em um cluster do Amazon DocumentDB. Para obter mais informações, consulte [Transações no Amazon DocumentDB](transactions.md). 
+ **Fluxos de alteração**: agora você tem a capacidade de abrir um fluxo de alterações no nível do cluster (`client.watch()` ou `mongo.watch()`) e do banco de dados (`db.watch()`), pode especificar um `startAtOperationTime` para abrir um cursor do fluxo de alterações e, por fim, agora pode estender o período de retenção do fluxo de alterações para 7 dias (anteriormente 24 horas). Para obter mais informações, consulte [Usar fluxos de alterações com o Amazon DocumentDB](change_streams.md). 
+ **AWS Database Migration Service**(AWS DMS): Agora você pode usar AWS DMS para migrar suas cargas de trabalho do MongoDB 4.0 para o Amazon DocumentDB. AWS DMS agora oferece suporte a uma fonte do MongoDB 4.0, ao destino do Amazon DocumentDB 4.0 e a uma fonte do Amazon DocumentDB 3.6 para realizar atualizações entre o Amazon DocumentDB 3.6 e 4.0. Para obter mais informações, consulte a [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html).
+ **Desempenho e indexação**: agora é possível utilizar um índice com `$lookup`, encontrar consultas com uma projeção que contenha um campo ou um campo, e o campo `_id` pode ser servido diretamente do índice e sem a necessidade de ler a coleção (consulta coberta), a capacidade de `hint()` com `findAndModify`, otimizações de desempenho para `$addToSet` e melhorias para reduzir os tamanhos gerais dos índices. Para obter mais informações, consulte [Notas da versão](release-notes.md).
+ **Operadores**: o Amazon DocumentDB 4.0 agora oferece suporte a vários novos operadores de agregação: `$ifNull`, `$replaceRoot`, `$setIsSubset`, `$setIntersection`, `$setUnion`, `$setEquals`. É possível ver todas as APIs, operações e tipos de dados compatíveis do MongoDB no [APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB](mongo-apis.md).
+ **Controle de acesso baseado em função** (RBAC): com ambos os comandos `ListCollection` e `ListDatabase`, agora é possível opcionalmente usar os parâmetros `authorizedCollections` e `authorizedDatabases` para permitir que os usuários listem as coleções e bancos de dados que eles têm permissão para acessar sem exigir as funções `listCollections` e `listDatabase`, respectivamente. Você também tem a habilidade de matar seus próprios cursores sem precisar da função `KillCursor`.

O Amazon DocumentDB não oferece suporte a todos os atributos do MongoDB 4.0. Quando criamos o Amazon DocumentDB 4.0, trabalhamos de trás para frente com base nos atributos e nas capacidades que nossos clientes mais pediram que criássemos. Continuaremos adicionando recursos adicionais do MongoDB 4.0 com base no feedback dos clientes. Por exemplo, o Amazon DocumentDB 4.0 atualmente não suporta os operadores de conversão de tipo ou os operadores de string que foram introduzidos no MongoDB 4.0. Para obter a lista mais recente de APIs compatíveis, consulte [APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB](mongo-apis.md).

### Conceitos básicos do Amazon DocumentDB 4.0
<a name="compatibility-getstarted"></a>

Para começar a usar o Amazon DocumentDB 4.0, consulte o [Guia de conceitos básicos](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html). Você pode criar um novo cluster Amazon DocumentDB 4.0 usando o Console de gerenciamento da AWS ou o AWS SDK, AWS CLI ou. CloudFormation Ao se conectar ao Amazon DocumentDB, é necessário que você use um driver ou utilitário do MongoDB compatível com o MongoDB 4.0 ou superior. 

**nota**  
Ao usar o AWS SDK, ou AWS CLI CloudFormation, a versão do mecanismo será 5.0.0 como padrão. É necessário especificar explicitamente o parâmetro `engineVersion = 4.0.0` para criar um novo cluster do Amazon DocumentDB 4.0 ou `engineVersion = 3.6.0` para criar um novo cluster do Amazon DocumentDB 3.6. Para um determinado cluster do Amazon DocumentDB, você pode determinar a versão do cluster usando o AWS CLI para chamar `describe-db-clusters` ou usar o console de gerenciamento do Amazon DocumentDB para visualizar o número da versão do mecanismo de um determinado cluster.

O Amazon DocumentDB 4.0 é compatível com tipos de instância `r5`, `r6g`, `t3.medium` e `t4g.medium` para seus clusters, e está disponível em todas as regiões compatíveis. Não existem custos adicionais para usar o Amazon DocumentDB 4.0. Para obter mais informações sobre preços, consulte [Preços do Amazon DocumentDB (compatível com MongoDB)](https://aws.amazon.com/documentdb/pricing/).

### Atualizar ou migrar para o Amazon DocumentDB 4.0
<a name="compatibility-upgrade"></a>

É possível migrar do MongoDB 3.6 ou do MongoDB 4.0 para o Amazon DocumentDB 4.0 usando o [AWS DMS](https://aws.amazon.com/dms/) ou utilitários como [`mongodump`, `mongorestore`, `mongoimport` e `mongoexport`](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html). Da mesma forma, é possível usar as mesmas ferramentas para atualizar do Amazon DocumentDB 3.6 para o Amazon DocumentDB 4.0. Para obter instruções sobre como mitigar, consulte [Atualizando seu cluster Amazon DocumentDB usando AWS Database Migration Service](docdb-migration.versions.md).

### Diferenças funcionais
<a name="compatibility-differences"></a>

#### Diferenças funcionais entre Amazon DocumentDB 3.6 e 4.0
<a name="w2aac13c15c11b3"></a>

Com o lançamento do Amazon DocumentDB 4.0, há diferenças funcionais entre o Amazon DocumentDB 3.6 e o Amazon DocumentDB 4.0:
+ **Projeção para documentos aninhados**: o Amazon DocumentDB 3.6 considera o primeiro campo em um documento aninhado ao aplicar uma projeção. No entanto, o Amazon DocumentDB 4.0 analisará subdocumentos e também aplicará a projeção a cada subdocumento. Por exemplo: se a projeção for `"a.b.c": 1`, o comportamento nas duas versões será idêntico. No entanto, se a projeção for `{a:{b:{c:1}}}`, o Amazon DocumentDB 3.6 aplicará a projeção somente a 'a' e não a 'b' ou 'c'.
+ **Comportamento para `minKey`, `maxKey`**: no Amazon DocumentDB 4.0, o comportamento para `{x:{$gt:MaxKey}}` retorna nada, e para `{x:{$lt:MaxKey}}` retorna tudo. 
+ **Diferenças na comparação de documentos**: a comparação de valores numéricos de diferentes tipos (double, int, long) em subdocumentos (por exemplo, `b` em `{"_id" :1, "a" :{"b":1}}`) agora fornece uma saída consistente em todos os tipos de dados numéricos e para cada nível de um documento.

#### Diferenças funcionais entre Amazon DocumentDB 4.0 e MongoDB 4.0
<a name="w2aac13c15c11b5"></a>

Abaixo estão as diferenças funcionais entre o Amazon DocumentDB 4.0 e o MongoDB 4.0.
+ **Pesquisa com chave vazia no caminho**: quando uma coleção contém um documento com chave vazia dentro da matriz (por exemplo, `{"x" : [ { "" : 10 }, { "b" : 20 } ]}`) e quando a chave usada na consulta termina em uma string vazia (por exemplo, `x.`), o Amazon DocumentDB retornará esse documento, pois percorre todos os documentos na matriz, enquanto o MongoDB não retornará esse documento.
+ **`$setOnInsert` junto com `$` no caminho**: o operador de campo `$setOnInsert` não funcionará em combinação com `$` no caminho no Amazon DocumentDB, que também é consistente com o MongoDB 4.0. 