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
O Amazon DocumentDB oferece suporte à compatibilidade com o MongoDB, incluindo MongoDB 4.0 e MongoDB 5.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.
Compatibilidade com MongoDB 5.0
Tópicos
Novidades do Amazon DocumentDB 5.0
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 de lançamento.
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
Suporte para criptografia em nível de campo (FLE) do lado do cliente. 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 campo do lado do cliente.
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 suportados APIs, consulte APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB.
Conceitos básicos do Amazon DocumentDB 5.0
Para começar a usar o Amazon DocumentDB 5.0, consulte o Guia de conceitos básicos. Você pode criar um novo cluster Amazon DocumentDB 5.0 usando o AWS Management Console ou o AWS SDK, AWS CLI ou. AWS 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 AWS CloudFormation, a versão do mecanismo será 5.0.0 como padrão. Você deve 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 oferece suporte aos processadores Amazon EC2 Graviton2, como r6g
tipos de t4.medium
instância, para seus clusters e está disponível em todas as regiões suportadas. Para obter mais informações sobre preços, consulte Preços do Amazon DocumentDB (compatível com MongoDB)
Atualize ou migre para o Amazon DocumentDB 5.0
É possível migrar do MongoDB 3.6 ou do MongoDB 4.0 para o Amazon DocumentDB 5.0 usando o AWS DMSmongodump
, mongorestore
, mongoimport
e mongoexport
. Para obter instruções sobre como mitigar, consulte Atualizando seu cluster Amazon DocumentDB usando AWS Database Migration Service.
Diferenças funcionais
Diferenças funcionais entre Amazon DocumentDB 4.0 e 5.0
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
substituislaveDelay
na saídareplSetGetConfig
. -
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
Tópicos
Atributos do Amazon DocumentDB 4.0
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 de lançamento.
-
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.
-
Fluxos de alteração: agora você tem a capacidade de abrir um fluxo de alterações no nível do cluster (
client.watch()
oumongo.watch()
) e do banco de dados (db.watch()
), pode especificar umstartAtOperationTime
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. -
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.
-
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 dehint()
comfindAndModify
, otimizações de desempenho para$addToSet
e melhorias para reduzir os tamanhos gerais dos índices. Para obter mais informações, consulte Notas de lançamento. -
Operadores: o Amazon DocumentDB 4.0 agora oferece suporte a vários novos operadores de agregação:
$ifNull
,$replaceRoot
,$setIsSubset
,$setIntersection
,$setUnion
,$setEquals
. Você pode ver todos os tipos de APIs MongoDB, operações e dados aos quais oferecemos suporte em. APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB -
Controle de acesso baseado em função (RBAC): com ambos os comandos
ListCollection
eListDatabase
, agora é possível opcionalmente usar os parâmetrosauthorizedCollections
eauthorizedDatabases
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çõeslistCollections
elistDatabase
, respectivamente. Você também tem a habilidade de matar seus próprios cursores sem precisar da funçãoKillCursor
.
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 suportados APIs, consulte APIsMongoDB, operações e tipos de dados compatíveis no Amazon DocumentDB.
Conceitos básicos do Amazon DocumentDB 4.0
Para começar a usar o Amazon DocumentDB 4.0, consulte o Guia de conceitos básicos. Você pode criar um novo cluster Amazon DocumentDB 4.0 usando o AWS Management Console ou o AWS SDK, AWS CLI ou. AWS 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 AWS CloudFormation, a versão do mecanismo será 5.0.0 como padrão. Você deve 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)
Atualizar ou migrar para o Amazon DocumentDB 4.0
É possível migrar do MongoDB 3.6 ou do MongoDB 4.0 para o Amazon DocumentDB 4.0 usando o AWS DMSmongodump
, mongorestore
, mongoimport
e mongoexport
. 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.
Diferenças funcionais
Diferenças funcionais entre Amazon DocumentDB 3.6 e 4.0
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
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.