Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Versões do MongoDB e mecanismos de armazenamento

Última atualização: Jul 03, 2026

Use esta página para escolher uma versão do MongoDB para sua instância do ApsaraDB for MongoDB. Cada versão introduz recursos específicos e oferece suporte a diferentes tipos de instância. Todas as versões usam o mecanismo de armazenamento WiredTiger.

Versões suportadas

O ApsaraDB for MongoDB oferece suporte às seguintes versões:

Nota

É possível atualizar manualmente a versão do banco de dados enquanto a instância estiver em execução. No entanto, não é possível fazer downgrade após uma atualização. Para mais informações, consulte

Atualizar a versão principal de uma instância

.

Mecanismo de armazenamento

Mecanismo de armazenamento

Descrição

WiredTiger

Mecanismo padrão para todas as versões. Usa uma estrutura B-tree e suporta compressão de dados, o que reduz os custos de armazenamento. Adequado para a maioria dos cenários de negócios.

Matriz de versões e tipos de instância

Tipo de instância

MongoDB 4.4 ou posterior

MongoDB 4.2

MongoDB 4.0

MongoDB 3.4 (descontinuado)

Standalone

Não suportado

Não suportado

Suportado

Suportado

Conjunto de réplicas

Suportado

Suportado

Suportado

Suportado

Cluster fragmentado

Suportado

Suportado

Suportado

Suportado

Nota

Instâncias standalone estão disponíveis apenas no MongoDB 4.0 e 3.4. O MongoDB 4.2 e versões posteriores não oferecem suporte a instâncias standalone.

MongoDB 8.0

O MongoDB 8.0 traz um TCMalloc atualizado, melhor desempenho de replicação e resharding, além de alterações em sharding, logging, agregação e segurança.

TCMalloc atualizado

O TCMalloc atualizado usa caches por CPU em vez de caches por thread para reduzir a fragmentação de memória e melhorar a adaptabilidade sob cargas de trabalho intensas. Uma thread em segundo plano tenta liberar memória para o sistema operacional a cada segundo.

Desempenho de replicação

Quando writeConcern está definido como majority, o MongoDB 8.0 retorna entradas do oplog após a gravação na maioria dos membros do conjunto de réplicas, em vez de aguardar a aplicação das alterações. Isso melhora o desempenho de gravação no modo majority.

Os nós secundários gravam e aplicam cada lote de entradas do oplog em paralelo. Uma thread Writer lê novas entradas do oplog de um nó primário e as grava no oplog local, enquanto uma thread Applier aplica essas alterações de forma assíncrona ao banco de dados local. Esse processo aumenta o throughput de replicação nos nós secundários.

Desempenho de resharding

O MongoDB 8.0 suporta a opção forceRedistribution, que permite fazer resharding de uma coleção usando a mesma chave de shard e redistribuir dados para novos shards. Esse processo é muito mais rápido do que migrar chunks por intervalo. Também é possível combinar essa opção com zones para migrar dados para uma região específica.

Sharding

  • O hash sharding cria 1 chunk por shard por padrão. Antes do MongoDB 8.0, eram criados 2 chunks por padrão.

  • Execute o comando dbhash em shards.

  • Os comandos findAndModify e deleteOne aceitam chaves de shard parciais como predicados de consulta.

  • Ao usar o comando updateOne com upsert definido como true em uma coleção fragmentada, exclua todas as chaves de shard nos predicados de consulta.

  • Use o comando unshardCollection ou o método sh.unshardCollection() para cancelar uma operação de sharding em uma coleção existente. Essa ação move todos os documentos para um shard específico ou para o shard com menos dados.

  • Use o comando moveCollection para mover uma coleção não fragmentada para um shard específico, sem limitações impostas pelo shard primário. Coleções de séries temporais e coleções com Queryable Encryption não podem ser movidas. O bloqueio de gravação na coleção dura cerca de 2 segundos.

  • Os seguintes comandos de banco de dados e funções auxiliares do mongosh têm suporte:

Comando

Função auxiliar do mongosh

Descrição

moveCollection

sh.moveCollection()

Move uma coleção não fragmentada para um shard específico.

unshardCollection

sh.unshardCollection()

Cancela o sharding de uma coleção e move os dados para um shard específico.

abortMoveCollection

sh.abortMoveCollection()

Interrompe uma operação moveCollection em andamento.

abortUnshardCollection

sh.abortUnshardCollection()

Interrompe uma operação unshardCollection em andamento.

Nenhum

sh.shardAndDistributeCollection()

Fragmenta uma coleção e redistribui imediatamente os dados com uma chave de shard existente. Equivalente a shardCollection combinado com reshardCollection.

Logging

O campo workingMillis foi adicionado aos logs de consultas lentas para mostrar o tempo gasto nas operações reais. Diferentemente de durationMillis, que indica a latência total da operação, workingMillis exclui o tempo consumido por esperas de bloqueio ou limitação de tráfego.

Agregação

  • Conversão de binData: Use o operador $convert para converter valores entre string e binData. A expressão $toUUID fornece uma sintaxe simplificada para converter strings em valores UUID.

  • $queryStats: O estágio $queryStats retorna estatísticas para consultas registradas e otimiza o rastreamento e o relatório de métricas em change streams.

Segurança

  • Queryable Encryption: O MongoDB 8.0 suporta consultas de intervalo em campos criptografados usando $lt, $lte, $gt e $gte.

  • Fila de entrada: O MongoDB 8.0 introduz uma fila de entrada para controle de acesso de entrada (ingressAdmissionControllerTicketPoolSize). As operações enviadas pela rede entram nessa fila, ilimitada por padrão. Defina um valor máximo de fila para controlar o enfileiramento de solicitações.

Outras alterações

  • Um novo Query Shape substitui o formato de consulta anterior, agora chamado de plan cache query shape. O otimizador de consultas usa configurações de consulta como entrada adicional para selecionar o plano de consulta.

    • setQuerySettings inclui configurações de consulta:

      • Especifique a seleção de índice. O MongoDB 8.0 não permite que planCacheSetFilter defina index filter.

      • Especifique a limitação de tráfego. Use a opção reject para rejeitar um Query Shape específico.

    • removeQuerySettings exclui configurações de consulta.

    • $querySettings visualiza configurações de consulta.

  • O comando explain() inclui o tempo de otimização do plano de consulta em queryPlanner.optimizationTimeMillis, medido em milissegundos.

  • O parâmetro defaultMaxTimeMS especifica o limite de tempo padrão para uma única operação de leitura, em milissegundos.

    • Operações aplicáveis: find, aggregate (excluindo estágios $merge e $out), count, distinct e dbHash.

    • Se um cliente especificar maxTimeMS, defaultMaxTimeMS não terá efeito para essa operação.

  • O comando bulkWrite executa operações de inserção, atualização e exclusão em várias coleções em uma única solicitação.

  • updateOne suporta ordenação com a opção sort.

  • Crie índices TTL em coleções limitadas (capped collections).

  • Inserções em massa não transacionais são processadas em lote em uma única entrada do oplog, em vez de entradas separadas. Todos os documentos inseridos compartilham o mesmo clusterTime nos eventos de change stream. Isso melhora o desempenho de inserção em massa e evita atrasos de replicação nos nós secundários.

  • Execute operações DDL simultâneas em diferentes coleções dentro do mesmo banco de dados.

  • A adição ou remoção de shards é bloqueada durante operações DDL em um cluster fragmentado, como reshardCollection. Execute essas ações somente após a conclusão das operações DDL.

  • A criação de índices foi aprimorada com relatórios de erros mais rápidos e recuperação de desastres mais robusta.

Ação

MongoDB 8.0

Antes do MongoDB 8.0

Interrupção da criação de índice após erros

Um erro de índice detectado durante a fase de varredura da coleção (exceto erros de chave duplicada) é retornado imediatamente, e a criação do índice é interrompida. Por exemplo, um formato de valor de índice incompatível aciona um erro imediato.

Um erro de índice detectado durante a fase de varredura da coleção era retornado na fase de commit, ao final da criação do índice, o que poderia atrasar o relatório de erros.

Implantação resiliente

Se ocorrer um erro na criação do índice, os membros secundários podem solicitar ao membro primário que interrompa a criação do índice sem travar. Se um membro já tiver votado para confirmar um índice, os membros secundários não podem solicitar a interrupção e travam (igual ao MongoDB 7.0 e anteriores).

Erros na criação de índices podem causar o travamento de membros secundários.

Espaço em disco

Se o espaço disponível em disco for menor que o valor especificado em indexBuildMinAvailableDiskSpaceMB, a criação do índice pode ser interrompida automaticamente. Se um membro tiver votado para confirmar um índice, a criação do índice não será interrompida.

A criação de índices também é interrompida quando o espaço disponível em disco é insuficiente.

MongoDB 7.0

O MongoDB 7.0 introduz Queryable Encryption (disponibilidade geral), verificação de consistência de metadados fragmentados, consultas amostradas e análise de chave de shard (analyzeShardKey), além do AutoMerger. Também inclui alterações em sharding, coleções de séries temporais, agregação e segurança.

Queryable Encryption

No MongoDB 6.0, o Queryable Encryption estava em prévia. No MongoDB 7.0, esse recurso tem disponibilidade geral. Para mais informações, consulte Queryable Encryption.

Verificação de consistência de metadados fragmentados

O MongoDB 7.0 adiciona o comando checkMetadataConsistency para verificar inconsistências de metadados entre shards. Adicione essa verificação às operações rotineiras e manutenção (O&M) para identificar riscos de inconsistência antecipadamente. Para mais informações, consulte checkMetadataConsistency.

Consultas amostradas e análise de chave de shard

Analise se a chave de shard de uma coleção é apropriada com base nos resultados de consultas amostradas. Isso ajuda a projetar seu esquema e chave de shard de forma mais eficaz. Para mais informações, consulte analyzeShardKey e configureQueryAnalyzer.

AutoMerger

O MongoDB 7.0 introduz o AutoMerger para o balanceador. Quando dados ou índices estão distribuídos de forma desigual, existem shards excessivos ou ocorre migração de dados, o AutoMerger mescla chunks para equilibrar a distribuição de dados e melhorar o desempenho. O AutoMerger é ativado por padrão. Configure também uma janela ativa para o balanceador habilitar o AutoMerger.

Sharding

  • O parâmetro rangeDeleterHighPriority especifica se a exclusão de documentos órfãos tem alta prioridade. Por padrão, isso está definido como false, o que significa que o MongoDB prioriza operações de exclusão relacionadas a negócios.

  • O MongoDB 7.0 remove o documento operationsBlockedByRefresh, que continha estatísticas sobre operações bloqueadas por atualizações do cache de catálogo. Os contadores aumentavam nos nós mongos para cada operação que usava informações de roteamento de coleção, mesmo sem bloqueio por atualização de catálogo.

  • Foram adicionadas métricas de monitoramento para resharding.

  • A opção maxSize não é mais suportada para o comando addShard.

  • Ao ajustar o tamanho do chunk da coleção config.settings, uma verificação de validade garante que o novo valor esteja dentro de um intervalo de 1 a 1.024.

  • A partir do MongoDB 6.0.3, a política do balanceador mudou:

    • O balanceador distribui dados com base na diferença de volume de dados, em vez da contagem de chunks entre shards.

    • O particionamento é feito por intervalo em vez de por chunk.

    • A divisão automática entra em vigor apenas durante a migração de dados entre shards.

Coleções de séries temporais

  • As restrições ao comando DELETE para coleções de séries temporais de versões anteriores foram removidas. A única restrição restante é que o comando não pode ser usado em uma transação de múltiplos documentos.

  • Coleções de séries temporais suportam o comando COMPACT.

Agregação

O MongoDB 7.0 adiciona operadores para cálculos bit a bit e percentis:

Operador

Descrição

$bitAnd

Retorna o resultado de uma operação AND bit a bit em um valor INT ou LONG.

$bitNot

Retorna o resultado de uma operação inversa bit a bit em um valor INT ou LONG.

$bitOr

Retorna o resultado de uma operação OR bit a bit em um valor INT ou LONG.

$bitXor

Retorna o resultado de uma operação XOR bit a bit em um valor INT ou LONG.

$median

Retorna a mediana aproximada (50º percentil).

$percentile

Retorna o percentil especificado.

Segurança

  • Key Management Interoperability Protocol (KMIP) V1.0 e V1.1 são suportados.

  • OpenSSL 3.0 e OpenSSL FIPS são suportados.

Outras alterações

  • Campos como catalogCacheIndexLookupDurationMillis foram adicionados aos logs de consultas lentas. Para mais informações, consulte Logging Slow Operations.

  • Ajuste dinamicamente a concorrência de transações do mecanismo de armazenamento. A concorrência padrão é 128. A partir do MongoDB 7.0, a concorrência de transações se ajusta automaticamente. Para mais informações, consulte Concurrent Storage Engine Transactions (Read and Write Tickets).

  • Campos relacionados à amostragem de consultas foram adicionados ao comando currentOp. Para mais informações, consulte currentOp Metrics.

  • Índices wildcard compostos são suportados. Para mais informações, consulte Compound Wildcard Indexes.

  • O operador $changeStreamSplitLargeEvent divide grandes eventos de alteração que excedem 16 MB. Para mais informações, consulte Large Change Stream Events.

  • O desempenho do mecanismo de execução de consultas baseado em slots foi otimizado.

  • Métricas relacionadas a migrações de chunks foram adicionadas. Para mais informações, consulte New Sharding Statistics for Chunk Migrations.

  • A variável de sistema USER_ROLES retorna a função do usuário atual.

  • Parâmetros globais relacionados a analyzeShardKey, balancer e queryAnalyzers foram adicionados.

  • Mais campos foram adicionados aos resultados do serverStatus. Para mais informações, consulte serverStatus Output Change.

MongoDB 6.0

O MongoDB 6.0 introduz Queryable Encryption e Cluster-to-Cluster Sync. Também inclui melhorias em coleções de séries temporais, change streams, agregação, consultas, elasticidade e segurança.

Queryable Encryption

O Queryable Encryption criptografa dados sensíveis no lado do cliente, armazena-os como dados criptografados totalmente randomizados no servidor de banco de dados e suporta consultas expressivas nos dados criptografados.

Apenas o cliente pode visualizar o texto simples. Quando uma consulta chega ao servidor, ela inclui uma chave de criptografia do Key Management Service (KMS). O servidor processa a consulta no texto cifrado e retorna uma resposta criptografada. O cliente descriptografa a resposta e a apresenta em texto simples.

Cluster-to-Cluster Sync

O Cluster-to-Cluster Sync introduz a ferramenta mongosync para sincronização contínua e unidirecional de dados entre duas instâncias do MongoDB em qualquer ambiente, incluindo ambientes híbridos, Atlas, on-premises e de borda. Inicie, pare, retome ou reverta a sincronização e monitore o processo em tempo real.

Coleções de séries temporais

O MongoDB 6.0 melhora as coleções de séries temporais em indexação, consulta e ordenação:

  • Índices secundários e compostos melhoram o desempenho de leitura.

  • A Geo-Indexação adiciona informações geográficas aos dados de séries temporais para análise espaço-temporal. Exemplos incluem rastreamento de mudanças de temperatura durante o transporte em cadeia fria e monitoramento de consumo de combustível em rotas de navegação.

  • Consultas de last point são otimizadas. Não é mais necessário varrer toda a coleção para consultar o último ponto de dados.

  • Operações de ordenação são concluídas de forma mais eficiente usando índices clusterizados e secundários em campos de tempo e metadados.

Change streams

  • Pré-imagens das alterações agora são visualizáveis.

Nota

Versões anteriores ao MongoDB 6.0 suportam apenas pós-imagens. A partir do MongoDB 6.0, é possível visualizar tanto pré-imagens quanto pós-imagens. Para mais informações, consulte

Change Streams with Document Pre- and Post-Images

.

  • Instruções DDL como create, createIndexes, modify e shardCollection são suportadas. Para mais informações, consulte Change Events.

  • O campo wallTime foi adicionado aos Eventos de Alteração. O timestamp suporta operadores de conversão e exibição, incluindo $toDate, $tsSeconds e tsIncrement.

Agregação

  • Instâncias de cluster fragmentado suportam $lookup e $graphLookup.

  • O suporte a JOINS do $lookup foi aprimorado.

  • O suporte a travessia de grafos do $graphLookup foi aprimorado.

  • O desempenho do $lookup foi melhorado, com aumento de até cem vezes em alguns cenários.

Nota

Para mais informações sobre

$lookup

e

$graphLookup

, consulte

$lookup (aggregation)

e

$graphLookup (aggregation)

.

Consulta

O MongoDB 6.0 adiciona operadores como $maxN, $topN, $minN, $bottomN, $lastN e $sortArray. Esses operadores transferem computações da camada de negócios para o banco de dados, tornando a camada de negócios mais leve.

Nota

Para mais informações, consulte

Aggregation Pipeline Operators

.

Elasticidade

  • O tamanho padrão do chunk aumenta de 64 MB para 128 MB. Isso reduz a frequência de migração de dados e diminui a sobrecarga das camadas de rede e roteamento.

  • O comando configureCollectionBalancing é suportado:

    • Defina tamanhos de chunk diferentes para tabelas fragmentadas distintas. Por exemplo, defina 256 MB para tabelas muito grandes e 64 MB ou 32 MB para tabelas menores onde se deseja uma distribuição uniforme.

    • Desfragmente ativamente uma coleção. Em comparação com compact, este comando oferece melhor desfragmentação e reduz o uso de espaço em disco.

Nota

Para mais informações, consulte

configureCollectionBalancing

.

Segurança

O MongoDB 6.0 otimiza a Criptografia em Nível de Campo no Lado do Cliente (CSFLE). O CSFLE agora suporta qualquer provedor de gerenciamento de chaves compatível com o Key Management Interoperability Protocol (KMIP). Além do gerenciamento local de chaves baseado em KeyFile, o MongoDB pode integrar-se a dispositivos de gerenciamento de chaves de terceiros usando KMIP.

Nota

O recurso CSFLE é amplamente utilizado no gerenciamento de dados sensíveis, especialmente em cenários de migração de dados.

MongoDB 5.0

O novo ciclo de lançamento no MongoDB 5.0 permite uma entrega mais rápida de novos recursos.

Plataforma nativa de séries temporais

O MongoDB 5.0 suporta nativamente todo o ciclo de vida dos dados de séries temporais, desde ingestão, armazenamento e consulta até análise em tempo real, visualização e arquivamento online ou expiração automática. Isso torna a criação e execução de aplicações de séries temporais mais rápida e econômica. Estende os cenários de aplicação do MongoDB em áreas como Internet das Coisas (IoT), análises financeiras e logística.

Resharding em tempo real

Altere a chave de shard de uma coleção sob demanda conforme seus negócios funcionam e os dados crescem, sem tempo de inatividade do banco de dados ou migrações complexas. Execute o comando reshardCollection no MongoDB Shell, selecione o banco de dados e a coleção, e especifique a nova chave de shard:

reshardCollection: "<database>.<collection>", key: <shardkey>
Nota

<database>

: O nome do banco de dados para realizar o reshard.

Nota

<collection>

: O nome da coleção para realizar o reshard.

Nota

<shardkey>

: O nome da chave de shard.

Nota

Ao chamar o comando reshardCollection, o MongoDB clona a coleção existente, aplica todas as entradas do oplog da coleção existente à nova coleção e, em seguida, muda automaticamente para a nova coleção após todas as entradas do oplog serem aplicadas. A coleção antiga é excluída em segundo plano.

Versioned API

A Versioned API permite que o MongoDB adicione novos recursos e melhorias em cada lançamento, mantendo a compatibilidade com versões anteriores. Quando for necessário alterar uma API, adicione uma nova versão e execute-a simultaneamente com as APIs versionadas existentes no mesmo servidor.

A Versioned API define um conjunto de comandos e parâmetros comumente usados que permanecem inalterados entre lançamentos principais e rápidos. Ao fixar seu driver em uma versão específica da API, sua aplicação pode continuar executando por anos sem modificações de código, mesmo com a atualização do banco de dados.

Write concern majority padrão

A partir do MongoDB 5.0, o write concern padrão é majority. Uma operação de gravação é confirmada e uma resposta de sucesso é retornada apenas quando a gravação foi aplicada ao nó primário e persistida nos logs da maioria dos membros do conjunto de réplicas. Isso fornece maior confiabilidade de dados pronta para uso.

Consultas snapshot de longa duração

Consultas snapshot de longa duração são executadas com uma duração padrão de 5 minutos (ajustável), mantendo o isolamento de snapshot consistente com um banco de dados transacional em tempo real. Execute consultas snapshot em nós secundários para executar diferentes cargas de trabalho em um único cluster e escalá-las entre shards.

Novo MongoDB Shell

O MongoDB 5.0 redesenhou o MongoDB Shell (mongosh) do zero. É o shell padrão para a plataforma MongoDB. Os recursos incluem destaque de sintaxe, autocompletar inteligente, ajuda contextual e mensagens de erro úteis.

Ajuste de lançamento de versão

A partir do MongoDB 5.0, os lançamentos são divididos em Lançamentos Principais e Lançamentos Rápidos. Os Lançamentos Rápidos são versões de desenvolvimento para download e teste, mas não são recomendados para ambientes de produção.

MongoDB 4.4

O MongoDB 4.4 aborda os principais pontos de dor dos usuários em versões anteriores.

Índices ocultos

Oculte índices existentes para impedir que sejam usados em consultas subsequentes. Isso permite observar se a exclusão de um índice ineficiente alvo causa flutuações de desempenho. Se não houver impacto, exclua o índice com segurança.

Chaves de shard refináveis

Adicione um ou mais campos de sufixo para melhorar a distribuição de documentos existentes em chunks. Isso evita a concentração de acesso em um único shard e distribui a carga do servidor.

Chaves de shard hashed compostas

Especifique um único campo hashed em um índice composto para simplificar a lógica de negócios.

Leituras protegidas (Hedged reads)

Para instâncias de cluster fragmentado, envie uma solicitação de leitura a dois membros do conjunto de réplicas de um shard simultaneamente. O resultado do membro mais rápido é retornado ao cliente, reduzindo a latência da solicitação.

Replicação em streaming

As entradas do oplog do nó primário são transmitidas ativamente para o nó secundário. Comparado ao método de polling em versões anteriores, isso economiza quase metade do tempo de ida e volta e melhora o desempenho de replicação primário-secundário.

Indexação simultânea

A criação de índices nos nós primário e secundário é síncrona. Isso reduz a latência de criação de índices e garante que o nó secundário possa acessar prontamente os dados mais recentes.

Leituras espelhadas

O nó primário replica uma parte do tráfego de leitura para o nó secundário. Isso garante que o nó secundário lide com algum tráfego de leitura, reduzindo a latência de acesso aos negócios.

Sincronização inicial retomável

A Sincronização Inicial Retomável fornece um recurso de transferência retomável durante a sincronização completa entre nós primários e secundários. Isso impede que a sincronização completa reinicie devido a desconexões de rede.

Retenção de oplog baseada em tempo

A Retenção de Oplog Baseada em Tempo permite personalizar o período de retenção para entradas do oplog, impedindo que sejam limpas no nó primário, o que acionaria uma sincronização completa.

Union

O MongoDB 4.4 adiciona o estágio $unionWith para implementar funcionalidade semelhante ao union all do SQL, expandindo as capacidades de consulta.

Expressões de agregação personalizadas

O MongoDB 4.4 adiciona $accumulator e $function para implementar Expressões de Agregação personalizadas.

Nota

Para mais informações sobre os novos recursos do MongoDB 4.4, consulte

Visão geral dos recursos do MongoDB 4.4

.

MongoDB 4.2

O MongoDB 4.2 usa um método de commit em duas fases para garantir as propriedades de atomicidade, consistência, isolamento e durabilidade (ACID) das transações em clusters fragmentados.

Transações distribuídas

Transações distribuídas usam um método de commit em duas fases para garantir propriedades ACID em clusters fragmentados. Isso marca um salto do NoSQL para o NewSQL.

Leituras repetíveis

Leituras repetíveis fornecem uma capacidade de nova tentativa automática em ambientes de rede instável. Isso reduz a complexidade no lado dos negócios e garante a continuidade dos negócios.

Índices wildcard

Para campos não predeterminados, crie um índice wildcard para cobrir vários campos de recursos sob um documento.

Criptografia em nível de campo

A criptografia em nível de campo é suportada no nível do driver. Criptografe informações sensíveis específicas, como nomes de contas, senhas, preços e números de telefone. Isso evita a criptografia de todo o banco de dados e melhora a flexibilidade e a segurança.

Views materializadas

Views materializadas armazenam em cache resultados de cálculos para evitar cálculos repetidos, melhorar a eficiência operacional e reduzir a complexidade lógica.

MongoDB 4.0

O MongoDB 4.0 é adequado para cenários como finanças que dependem de transações e usam recursos NoSQL.

Suporte a transações entre documentos

O MongoDB 4.0 é o primeiro banco de dados em nuvem NoSQL a suportar transações entre documentos. Combina a velocidade, flexibilidade e funcionalidade do modelo de documento com garantias ACID.

Velocidade de migração 40% mais rápida

Leituras e gravações simultâneas permitem que nós de shard recém-adicionados concluam a migração de dados mais rapidamente.

Desempenho de leitura expandido

Com o recurso de transação, os nós secundários não bloqueiam mais solicitações de leitura devido à sincronização de logs. O Alibaba Cloud também suporta um recurso de extensão multi-nó em todas as versões, o que pode melhorar as capacidades de leitura dos seus negócios.

MongoDB 3.4 (descontinuado)

O MongoDB 3.4 oferece várias melhorias em desempenho e segurança em comparação com a versão 3.2.

Sincronização primário-secundário mais rápida

Todos os índices são construídos enquanto os dados estão sendo sincronizados. Versões anteriores construíam apenas o índice _id. Durante a fase de sincronização de dados, os nós secundários leem continuamente novas informações do oplog para garantir espaço de armazenamento suficiente para dados temporários.

Balanceamento de carga mais eficiente

Na versão 3.2 e anteriores, o balanceamento de carga para clusters fragmentados era tratado por nós mongos. Vários nós mongos competiam por um bloqueio distribuído. O nó que adquiria o bloqueio realizava o balanceamento de carga e migrava chunks entre nós de shard. Na versão 3.4, o balanceamento de carga é tratado pelo nó primário no config server, o que melhora tanto a concorrência quanto a eficiência.

Operações de agregação mais ricas

A versão 3.4 introduz vários operadores de agregação. Por exemplo, bucket simplifica a categorização de dados, $graphLookup suporta operações de relacionamento mais complexas do que o operador $lookup da versão 3.2, e $addFields permite operações avançadas de documentos, como somar campos específicos e armazenar o resultado como um novo campo.

Suporte a zonas de sharding

O conceito de Zona substitui o mecanismo de sharding consciente de tags em clusters fragmentados. Ele atribui dados a um ou mais nós de shard especificados, facilitando a implantação entre data centers.

Suporte a collation

Em versões anteriores, as strings eram comparadas byte a byte, independentemente do idioma ou maiúsculas/minúsculas. Com Collation, o conteúdo da string é interpretado e comparado de acordo com o locale. A comparação insensível a maiúsculas/minúsculas também é suportada.

Suporte a views somente leitura

A versão 3.4 adiciona views somente leitura. Dados em uma coleção que atendem a uma condição de consulta específica podem ser virtualizados em uma coleção especial para operações de consulta adicionais.