Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Versões e storage engines

Última atualização: Sep 17, 2026

Este tópico descreve as versões, os storage engines e a compatibilidade do ApsaraDB for MongoDB para ajudar você a selecionar a instância mais adequada aos requisitos do seu negócio.

Versões suportadas

O ApsaraDB for MongoDB suporta as seguintes versões:

Nota

É possível atualizar manualmente a versão principal do banco de dados de uma instância em execução. No entanto, não é possível fazer downgrade. Para mais informações, consulte {{XREF_0}}.

Storage engines

Storage engine

Cenário

Descrição

WiredTiger

Storage engine padrão para a maioria das cargas de trabalho.

Organiza dados usando uma estrutura B-tree e oferece melhorias significativas de desempenho em relação ao storage engine MMAPv1 anterior do MongoDB. Também suporta compressão de dados para reduzir custos de armazenamento.

Compatibilidade de versão e storage engine

Storage engine

MongoDB 4.4 e posterior

MongoDB 4.2

MongoDB 4.0

MongoDB 3.4 (Descontinuado)

WiredTiger

  • instância de replica set

  • instância de sharded cluster

  • instância de replica set

  • instância de sharded cluster

  • instância standalone

  • instância de replica set

  • instância de sharded cluster

  • instância standalone

  • instância de replica set

  • instância de sharded cluster

MongoDB 8.3

Esta versão introduz novos recursos, incluindo agregação aprimorada, processo de gerenciamento de sharding refatorado, logs de consultas lentas em andamento e rastreamento de memória no nível de consulta. Também traz otimizações de desempenho, parâmetros de sistema, índices e séries temporais.

  • Agregação aprimorada: Adiciona acesso a índice de array, novas expressões como $hash e $hexHash, e conversão de tipos melhorada para $toString e $convert.

  • Processo de gerenciamento de sharding refatorado: O comando removeShard foi descontinuado e substituído por um processo de quatro estágios usando os comandos startShardDraining, stopShardDraining, shardDrainingStatus e commitShardRemoval. Esse novo processo suporta operações de pausa e retomada.

  • Monitoramento e diagnóstico aprimorados: Adiciona logs de consultas lentas em andamento, rastreamento de memória no nível de consulta (inUseTrackedMemBytes e peakTrackedMemBytes) e saída sob demanda para serverStatus.

  • Desempenho e parâmetros de sistema: Adiciona novos parâmetros para controle de recursos de conexões pré-autenticadas, recuperação automática de recursos sob pressão de cache e seleção de serviço consciente de sobrecarga.

  • Alterações em índices: Aumenta o valor padrão de 2dsphereVersion para 4, priorizando GeoJSON em vez de pares de coordenadas legados.

Para mais informações, consulte {{XREF_12}}.

MongoDB 8.0

Esta versão apresenta um TCMalloc atualizado, desempenho otimizado de replicação e resharding, além de melhorias 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 resiliência do banco de dados sob cargas de trabalho pesadas. Além disso, o TCMalloc atualizado cria uma thread em segundo plano que tenta liberar memória de volta para o sistema operacional a cada segundo.

  • Desempenho de replicação

    A partir do MongoDB 8.0, quando writeConcern está definido como majority, o MongoDB confirma uma gravação assim que a maioria dos membros do replica set grava as entradas correspondentes no oplog, sem esperar que as alterações sejam aplicadas. Essa mudança melhora o desempenho de gravação no modo majority.

    Os membros secundários agora gravam e aplicam lotes do oplog em paralelo. Enquanto uma thread de gravação lê novas entradas do oplog do membro primário e as grava no oplog local, uma thread de aplicação aplica essas alterações de forma assíncrona ao banco de dados local. Essa mudança melhora o throughput de replicação nos membros secundários.

  • Desempenho de resharding

    O MongoDB 8.0 introduz a opção forceRedistribution, que permite fazer resharding de uma coleção com a mesma shard key, redistribuindo dados entre novos shards. Esse processo é significativamente mais rápido que a migração de chunks baseada em intervalos e pode ser usado com a opção zones para mover dados para zonas específicas.

  • Sharding

    • O sharding com hash agora cria um chunk por shard por padrão, em comparação com dois chunks nas versões anteriores ao MongoDB 8.0.

    • O comando dbhash agora pode ser executado diretamente em um shard.

    • Os comandos findAndModify e deleteOne agora podem usar uma shard key parcial no filtro de consulta.

    • Ao usar o comando updateOne com upsert definido como true em uma coleção com sharding, o filtro de consulta não precisa mais incluir a shard key completa.

    • Agora é possível remover o sharding de uma coleção existente usando o comando unshardCollection ou o método sh.unshardCollection(). Essa operação move todos os documentos da coleção para um shard especificado ou para o shard menos carregado.

    • O comando moveCollection agora permite mover uma coleção sem sharding para um shard específico, sem restrição ao shard primário. No entanto, coleções de séries temporais e coleções com criptografia consultável não podem ser movidas. Essa operação pode bloquear brevemente as gravações na coleção por cerca de dois segundos.

    • Esta versão introduz novos comandos de banco de dados e helpers do mongosh:

      Comando

      Helper do Mongosh

      Descrição

      moveCollection

      sh.moveCollection()

      Move uma coleção sem sharding para um shard específico.

      unshardCollection

      sh.unshardCollection()

      Remove o sharding de uma coleção existente com sharding e move seus 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()

      Cria sharding em uma coleção e redistribui imediatamente os dados usando a shard key fornecida.

      Executar este helper equivale a executar shardCollection e reshardCollection sequencialmente, com o objetivo de acelerar a movimentação de dados.

  • Logging

    O log de consultas lentas agora inclui um campo workingMillis, que mostra o tempo em que uma operação esteve ativamente em execução.

    Diferente de durationMillis, que mede a latência total da operação, workingMillis não inclui o tempo gasto esperando por recursos, como locks ou controle de fluxo.

  • Agregação

    • Conversão de binData

      O operador $convert agora suporta as seguintes conversões:

      • Converter valores string em valores binData.

      • Converter valores binData em valores string.

      Além disso, 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 melhora o rastreamento e relatório de métricas em um change stream.

  • Segurança

    • Criptografia consultável

      É possível usar $lt, $lte, $gt e $gte para realizar consultas de intervalo em campos criptografados.

    • Fila de ingresso

      O MongoDB 8.0 introduz uma nova fila para controle de admissão de ingresso (ingressAdmissionControllerTicketPoolSize). Operações que entram no banco de dados pela rede ingressam nessa fila.

      Por padrão, a fila de ingresso é ilimitada, mas é possível configurar seu tamanho máximo.

  • Outras otimizações

    • Esta versão introduz um novo Query Shape. O query shape anterior agora é chamado de Plan Cache Query Shape. O otimizador de consultas também usa Query Settings como entrada adicional, o que afeta a seleção final do plano de consulta.

      • setQuerySettings adiciona configurações de consulta:

        • Use este comando para especificar um índice para seleção. O MongoDB 8.0 descontinua o uso de planCacheSetFilter para definir um index filter.

        • Use este comando para configurar limitação de taxa. A opção reject permite rejeitar um Query Shape específico.

      • removeQuerySettings exclui configurações de consulta.

      • $querySettings exibe configurações de consulta.

    • O comando explain() agora retorna o tempo gasto na otimização do plano de consulta em milissegundos através de queryPlanner.optimizationTimeMillis.

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

      • Operações aplicáveis:

        • find

        • aggregate (excluindo os estágios $merge e $out)

        • count

        • distinct

        • dbHash

      • Se um cliente especificar maxTimeMS, defaultMaxTimeMS será ignorado para essa operação.

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

    • O comando updateOne agora suporta a opção sort.

    • Agora é possível criar um índice TTL em uma coleção capped.

    • Inserções em massa não transacionais agora são agrupadas em uma única entrada do oplog, em vez de gerar uma entrada separada para cada inserção. Todos os documentos inseridos compartilham o mesmo clusterTime nos eventos de change stream. Essa mudança melhora o desempenho de inserção em massa e ajuda a prevenir atrasos de replicação que poderiam ocorrer quando membros secundários reproduzem múltiplas entradas do oplog.

    • Operações DDL concorrentes agora podem ser executadas em diferentes coleções dentro do mesmo banco de dados.

    • A adição ou remoção de shards é bloqueada enquanto uma operação DDL que modifica uma coleção, como reshardCollection, estiver em execução no cluster. Essas ações só podem ser realizadas após a conclusão da operação DDL.

    • As construções de índices agora relatam erros mais rapidamente e têm maior resiliência a falhas.

      Comportamento

      MongoDB 8.0

      Antes do MongoDB 8.0

      Quando uma construção de índice para devido a um erro

      Erros de índice, exceto erros de chave duplicada, encontrados durante a fase de varredura da coleção são retornados imediatamente, interrompendo a construção do índice.

      O MongoDB 8.0 ajuda a diagnosticar erros de índice mais rapidamente. Por exemplo, se um formato de valor de índice incompatível for encontrado, o erro é retornado imediatamente.

      Erros de índice encontrados durante a varredura da coleção eram relatados durante a fase de commit no final da construção do índice.

      Em comparação com o MongoDB 8.0, um erro de construção de índice podia demorar muito mais para ser retornado, pois era relatado apenas durante a fase de commit.

      Resiliência

      Um membro secundário pode solicitar ao membro primário que interrompa uma construção de índice se ocorrer um erro. Isso melhora a resiliência da implantação, evitando que o secundário falhe.

      Uma solicitação para interromper uma construção de índice nem sempre é viável. Se um membro já votou para fazer commit do índice, o membro secundário não pode solicitar a interrupção da construção e falhará, semelhante ao comportamento no MongoDB 7.0 e anteriores.

      Erros na construção de índices podiam causar falhas nos membros secundários.

      Espaço em disco

      Uma construção de índice é abortada automaticamente se o espaço disponível em disco cair abaixo do valor mínimo especificado no parâmetro indexBuildMinAvailableDiskSpaceMB.

      A construção do índice não para se o membro já tiver votado para fazer commit do índice.

      As construções de índices também eram abortadas se o espaço em disco fosse insuficiente.

MongoDB 7.0

Esta versão introduz novos recursos, como criptografia consultável, verificação de consistência de metadados de shard, consultas amostradas e análise de shard key (analyzeShardKey), e o AutoMerger. Também inclui melhorias e otimizações para sharding, coleções de séries temporais, agregação e segurança.

  • Criptografia consultável

    A criptografia consultável estava disponível como recurso de visualização no MongoDB 6.0. No MongoDB 7.0, esse recurso agora está Disponível Geralmente (GA). Para mais informações, consulte Queryable Encryption.

  • Verificação de consistência de metadados de shard

    O MongoDB 7.0 introduz o comando checkMetadataConsistency para verificar inconsistências de metadados entre diferentes shards. Adicione esta verificação aos seus procedimentos de manutenção rotineiros para detectar possíveis inconsistências antecipadamente. Para mais informações, consulte checkMetadataConsistency.

  • Consulta amostrada e análise de shard key

    Esta versão suporta a análise da adequação da shard key de uma coleção com base nos resultados de consultas amostradas. Isso pode ajudar você a projetar um esquema e uma shard key mais eficazes e aproveitar melhor sua arquitetura de sharding. Para mais informações, consulte analyShardKey e configureQueryAnalyzer.

  • AutoMerger

    O MongoDB 7.0 introduz um novo AutoMerger para o Balancer. Quando a distribuição de dados ou índices está desigual, há muitos chunks ou durante a migração de dados, o AutoMerger mescla chunks para equilibrar os dados e melhorar o desempenho. Esse recurso é habilitado por padrão no MongoDB 7.0 e pode ser gerenciado através da janela ativa do Balancer.

  • Sharding

    • Agora é possível usar o parâmetro rangeDeleterHighPriority para atribuir uma prioridade maior à exclusão de documentos órfãos. Por padrão, esse parâmetro é definido como false, pois as exclusões no nível da aplicação geralmente têm prioridade mais alta.

    • A métrica de monitoramento operationsBlockedByRefresh, que rastreava o comportamento de atualização do cache de catálogo, não é mais suportada porque cada operação no mongos que usava informações de roteamento de coleção incrementava esse contador.

    • Esta versão adiciona novas métricas de monitoramento para resharding.

    • O comando addShard não suporta mais a opção maxSize.

    • Ao ajustar o tamanho do chunk para a coleção config.settings, uma verificação de validação agora limita o valor ao intervalo [1, 1024].

    • A partir do MongoDB 6.0.3, vários ajustes foram feitos na política do Balancer:

      • O Balancer não equilibra mais com base na diferença no número de chunks entre shards. Em vez disso, equilibra com base na diferença no tamanho dos dados entre shards.

      • Um intervalo substitui o conceito lógico de chunk.

      • A divisão automática ocorre apenas quando intervalos se movem entre shards.

  • Coleções de séries temporais

    • Esta versão remove as restrições operacionais do comando DELETE para coleções de séries temporais. O comando DELETE agora não tem limitações, exceto que não pode ser usado em transações de múltiplos documentos.

    • O comando COMPACT agora suporta coleções de séries temporais.

  • Agregação

    Esta versão introduz os seguintes operadores para suportar cálculos bit a bit e percentis:

    Parâmetro

    Descrição

    $bitAnd

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

    $bitNot

    Retorna o resultado de uma operação NOT bit a bit em um valor Int32 ou Int64.

    $bitOr

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

    $bitXor

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

    $median

    Retorna a mediana aproximada, que equivale ao 50º percentil.

    $percentile

    Retorna o valor para um percentil especificado.

  • Segurança

    • O MongoDB suporta KMIP 1.0 e 1.1.

    • O MongoDB suporta OpenSSL 3.0 e OpenSSL FIPS.

  • Outras otimizações

    • Os logs de consultas lentas agora incluem novos campos, como catalogCacheIndexLookupDurationMillis. Para mais informações, consulte log messages for slow queries.

    • A partir do MongoDB 7.0, o MongoDB ajusta automática e dinamicamente a concorrência das transações do storage engine, que anteriormente tinha um valor padrão de 128. Para mais informações, consulte Concurrent Storage Engine Transactions.

    • O comando currentOp agora inclui novos campos relacionados à amostragem de consultas. Para mais informações, consulte currentop-metrics.

    • Esta versão adiciona suporte para índices wildcard compostos. Para mais informações, consulte Compound Wildcard Indexes.

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

    • Esta versão melhora o desempenho do mecanismo de execução de consultas baseado em slots.

    • Esta versão adiciona novas métricas para migrações de chunks. Para mais informações, consulte New Sharding Statistics for Chunk Migrations.

    • Agora é possível usar a variável de sistema USER_ROLES para recuperar as funções do usuário atual.

    • Esta versão adiciona novos parâmetros globais relacionados a analyzeShardKey, balancer e queryAnalyzers.

    • A saída do comando serverStatus agora inclui campos adicionais. Para mais informações, consulte serverStatus Output Change.

Notas de versão do MongoDB 6.0

Esta versão introduz novos recursos, como criptografia consultável e Cluster-to-Cluster Sync. Também inclui melhorias e otimizações para coleções de séries temporais, change stream, agregação, consulta, elasticidade e segurança.

  • Criptografia consultável

    A criptografia consultável permite criptografar dados confidenciais no lado do cliente, armazená-los como dados criptografados totalmente randomizados no servidor de banco de dados e executar consultas expressivas nos dados criptografados.

    Com a criptografia consultável, os dados em texto simples só são visíveis no lado do cliente. Quando uma consulta é enviada ao servidor, ela inclui uma chave de criptografia de um Key Management Service (KMS). O servidor processa a consulta em relação ao texto cifrado e retorna um resultado criptografado. O cliente então usa a chave para descriptografar o resultado e exibir os dados em texto simples.

  • Cluster-to-Cluster Sync

    Esta versão introduz o mongosync, uma nova ferramenta de sincronização que suporta sincronização contínua e unidirecional de dados entre dois clusters MongoDB. Funciona em qualquer ambiente, incluindo ambientes híbridos, Atlas, on-premises e edge. Também é possível controlar e monitorar o processo de sincronização em tempo real, além de iniciar, parar, retomar ou reverter a sincronização conforme necessário.

  • Coleção de séries temporais

    Esta versão aprimora as coleções de séries temporais com melhorias em indexação, consultas e ordenação.

    • Adiciona suporte para índice secundário e índice composto para melhorar o desempenho de leitura.

    • Introduz indexação geoespacial para dados de séries temporais. Isso permite adicionar informações geográficas aos seus dados, o que ajuda na análise em cenários envolvendo distância e localização.

      Por exemplo, é possível rastrear mudanças de temperatura em caminhões refrigerados ou monitorar o consumo de combustível de navios de carga em rotas específicas.

    • Otimiza consultas de last point em dados de séries temporais. Não é mais necessário varrer uma coleção inteira para consultar o último ponto de dados.

    • Melhora o desempenho de ordenação para dados de séries temporais. As operações de ordenação agora são executadas de forma mais eficiente usando um índice clusterizado e um índice secundário nos campos de tempo e metadados.

  • Change stream

    Esta versão introduz os seguintes novos recursos e otimizações:

    • Suporta visualização da pré-imagem de um documento.

      Nota

      Versões do MongoDB anteriores à 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.

    • Adiciona suporte para instruções DDL como create, createIndexes, modify e shardCollection. Para mais informações, consulte Change Events.

    • Os eventos de alteração agora incluem o campo wallTime. O timestamp suporta vários operadores de conversão e exibição, incluindo $toDate, $tsSeconds e tsIncrement, facilitando o consumo pelas aplicações.

  • Agregação

    Esta versão introduz os seguintes novos recursos e otimizações:

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

    • Melhora o suporte para junções com $lookup.

    • Aprimora recursos de travessia de grafos com $graphLookup.

    • Melhora o desempenho de $lookup em até 100x em alguns cenários.

    Nota

    Para mais informações sobre $lookup e $graphLookup, consulte $lookup (aggregation) e $graphLookup (aggregation).

  • Consulta

    Adiciona novos operadores como $maxN, $topN, $minN, $bottomN, $lastN e $sortArray. Esses operadores transferem o trabalho computacional da aplicação para o banco de dados, tornando a camada da aplicação mais leve.

    Nota

    Para mais informações sobre esses operadores, consulte Aggregation Pipeline Operators.

  • Elasticidade

    Esta versão introduz os seguintes novos recursos e otimizações:

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

    • Adiciona suporte para o comando configureCollectionBalancing, que permite:

      • Definir tamanhos de chunk diferentes para diferentes coleções com sharding.

        Por exemplo, é possível aumentar o tamanho do chunk para 256 MB para coleções com sharding muito grandes, ou diminuí-lo para 64 MB ou 32 MB para coleções menores, distribuindo os dados de forma mais uniforme entre os shards.

      • Desfragmentar coleções ativamente.

        Em comparação com o comando compact, o configureCollectionBalancing desfragmenta coleções de forma mais eficaz, reduzindo significativamente o uso de espaço em disco.

      Nota

      Para mais informações sobre o comando configureCollectionBalancing, consulte configureCollectionBalancing.

    • Segurança

      Esta versão otimiza o recurso de Criptografia no Nível de Campo do Lado do Cliente (CSFLE). O CSFLE agora suporta qualquer provedor de gerenciamento de chaves que esteja em conformidade com o Key Management Interoperability Protocol (KMIP). Além de usar um arquivo de chave local, agora é possível integrar o MongoDB a appliances de gerenciamento de chaves de terceiros via KMIP para maior segurança.

      Nota

      O recurso CSFLE é frequentemente usado para gerenciar dados confidenciais, especialmente durante migrações de dados.

MongoDB 5.0

O MongoDB 5.0 marca o início de um novo ciclo de lançamento projetado para entregar novos recursos aos usuários mais rapidamente.

  • Plataforma nativa de séries temporais

    O MongoDB 5.0 estende a plataforma de dados de uso geral para simplificar o processamento de dados de séries temporais e expandir seus casos de uso para áreas como IoT, análises financeiras e logística.

  • Resharding em tempo real

    Basta executar o comando reshardCollection no MongoDB Shell, selecionar o banco de dados e a coleção para resharding e especificar a nova shard key.

    reshardCollection: "<database>.<collection>", key: <shardkey>
    Nota
    • <database>: O nome do banco de dados para resharding.

    • <collection>: O nome da coleção para resharding.

    • <shardkey>: O nome da nova shard key.

    • Ao executar o comando reshardCollection, o MongoDB clona a coleção existente e aplica todas as suas entradas do oplog à nova coleção. Após aplicar todas as entradas, o MongoDB muda para a nova coleção e exclui a antiga em segundo plano.

  • API Versionada

    A API Versionada permite que o MongoDB adicione novos recursos e melhorias em cada versão, mantendo a compatibilidade com versões anteriores. Se for necessário alterar uma API, é possível introduzir uma nova versão e executá-la no mesmo servidor junto com as versões existentes da API. À medida que o MongoDB acelera seu cronograma de lançamentos, a API Versionada ajuda você a usar os recursos mais recentes de forma mais rápida e fácil.

    A API Versionada define um conjunto estável dos comandos e parâmetros mais usados para uma aplicação. Esse conjunto permanece inalterado independentemente das atualizações do banco de dados provenientes de um Major Release anual ou de um Rapid Release trimestral. Ao desacoplar o ciclo de vida da aplicação do ciclo de vida do banco de dados, é possível fixar seu driver em uma versão específica da API do MongoDB. Isso garante que sua aplicação possa ser executada por anos sem alterações de código, mesmo à medida que o banco de dados evolui com novos recursos e melhorias.

  • write concern majority padrão

    A partir do MongoDB 5.0, o nível padrão de write concern é majority. Uma operação de gravação retorna uma confirmação de sucesso somente após ser aplicada ao nó primário e persistida no oplog da maioria dos nós secundários. Isso fornece garantias mais fortes de durabilidade de dados prontas para uso.

  • Consultas snapshot de longa duração

    Consultas snapshot de longa duração adicionam versatilidade e resiliência às suas aplicações. É possível executar consultas que têm como padrão um tempo de execução de 5 minutos (ou uma duração personalizada) mantendo o isolamento de snapshot consistente com o banco de dados transacional ativo. Também é possível realizar consultas snapshot em nós secundários, permitindo executar diferentes cargas de trabalho em um único cluster e escalá-las entre diferentes shards.

  • Novo MongoDB Shell

    O MongoDB Shell (mongosh) foi redesenhado do zero para uma melhor experiência do usuário. Oferece uma experiência moderna de linha de comando com usabilidade aprimorada e um ambiente de script poderoso. O novo MongoDB Shell é agora o shell padrão para a plataforma MongoDB. Novos recursos como destaque de sintaxe, autocompletar inteligente, ajuda contextual e mensagens de erro úteis criam uma experiência intuitiva e interativa.

  • Nova cadência de lançamento

    A partir do MongoDB 5.0, o MongoDB lança versões em duas séries: Major Releases e Rapid Releases. Os Rapid Releases destinam-se a fins de desenvolvimento e avaliação. Não use Rapid Releases em um ambiente de produção.

Recursos do MongoDB 4.4

Esta versão aborda os pontos de dor mais comuns dos usuários em versões anteriores.

  • Índices ocultos

    É possível ocultar um índice existente para impedir seu uso em consultas subsequentes. Isso permite observar o impacto no desempenho da remoção de um índice potencialmente ineficiente antes de excluí-lo permanentemente.

  • Shard keys refináveis

    É possível adicionar um ou mais campos de sufixo a uma shard key existente para melhorar a distribuição de documentos. Isso evita que as solicitações se concentrem em um único shard, distribuindo a carga do servidor.

  • Shard keys hashed compostas

    É possível especificar um único campo hashed dentro de um índice composto. Isso simplifica bastante a lógica da sua aplicação.

  • Leituras hedged

    Para uma instância de sharded cluster, é possível enviar uma consulta de leitura para dois membros de um replica set dentro de um shard simultaneamente. O cluster então retorna o resultado do membro com resposta mais rápida para o cliente, o que ajuda a reduzir a latência da consulta.

  • Replicação streaming

    O nó primário transmite proativamente o Oplog para os nós secundários. Esse método reduz o tempo de ida e volta quase pela metade em comparação com o método de polling nas versões anteriores, melhorando o desempenho da replicação.

  • Indexação simultânea

    Os índices são construídos simultaneamente nos nós primário e secundários. Isso reduz significativamente o atraso de replicação durante a construção de índices e garante que os nós secundários possam acessar os dados mais recentes prontamente.

  • Leituras espelhadas

    O nó primário pode espelhar uma porcentagem do tráfego de leitura para os nós secundários. Isso garante que os nós secundários lidem com uma parte da carga de leitura, o que ajuda a reduzir a latência de acesso da aplicação.

  • Sincronização inicial retomável

    Este recurso fornece capacidade de transferência retomável durante o processo de sincronização completa entre um nó primário e um secundário. Isso evita que a sincronização inicial reinicie se ocorrer uma interrupção de rede.

  • Retenção de oplog baseada em tempo

    É possível especificar um período de retenção personalizado para o Oplog. Isso ajuda a evitar que o nó primário limpe as entradas do Oplog muito cedo, o que poderia acionar uma sincronização completa.

  • Union

    O novo estágio $unionWith permite combinar dados de várias coleções, semelhante à função union all em SQL. Isso aprimora as capacidades de consulta do MongoDB.

  • Expressões de agregação personalizadas

    Os novos operadores $accumulator e $function permitem criar expressões de agregação personalizadas, melhorando a consistência da API e a experiência geral do usuário.

Nota

Para saber mais sobre os novos recursos do MongoDB 4.4, consulte {{XREF_13}}.

MongoDB 4.2

Esta versão usa commit de duas fases para garantir as propriedades ACID das transações em um sharded cluster. Esse recurso expande bastante os casos de uso do MongoDB.

  • Transações distribuídas

    O commit de duas fases garante as propriedades ACID das transações em um sharded cluster. Esse recurso expande bastante os casos de uso do MongoDB, marcando um salto de um banco de dados NoSQL para NewSQL.

  • Leituras repetíveis

    Leituras repetíveis tentam novamente as operações automaticamente em ambientes de rede não confiáveis, simplificando a lógica da sua aplicação e garantindo a continuidade dos negócios.

  • Índices wildcard

    Um índice wildcard pode cobrir vários campos dentro de um documento, proporcionando maior flexibilidade para esquemas com campos não determinísticos e simplificando o gerenciamento.

  • Criptografia no nível de campo

    A criptografia no nível de campo agora está disponível na camada do driver, permitindo criptografar dados confidenciais específicos, como nomes de contas, senhas, preços e números de telefone, sem criptografar todo o banco de dados. Isso melhora tanto a flexibilidade quanto a segurança.

  • Materialized views

    Uma materialized view armazena em cache os resultados de computação para evitar cálculos redundantes, melhorar a eficiência operacional e reduzir a complexidade lógica.

MongoDB 4.0

Esta versão é ideal para casos de uso que exigem suporte a transações e recursos NoSQL, especialmente no setor financeiro.

  • Suporte para transações entre documentos

    Como o primeiro banco de dados cloud NoSQL a suportar transações entre documentos, o MongoDB 4.0 combina a velocidade e a flexibilidade do modelo de documentos com a garantia ACID.

  • Migração de dados 40% mais rápida

    Leituras e gravações concorrentes permitem que novos nós de shard concluam a migração de dados mais rapidamente e lidem com cargas de trabalho de serviço crescentes.

  • Desempenho de leitura significativamente melhorado

    Com o suporte a transações, os nós secundários não bloqueiam mais as solicitações de leitura durante a sincronização do oplog. Além disso, o Alibaba Cloud suporta dimensionamento multi-nó em todas as edições, aumentando substancialmente a capacidade de leitura.

MongoDB 3.4 (descontinuado)

Esta versão oferece várias melhorias de desempenho e segurança em relação ao MongoDB 3.2.

Nota

O MongoDB 3.2 foi descontinuado. Para mais informações, consulte {{XREF_15}}.

  • Sincronização primário/secundário mais rápida

    Todos os índices agora são construídos durante a sincronização de dados, diferentemente das versões anteriores, onde apenas o índice _id era criado. Um nó secundário lê continuamente novas entradas do oplog para garantir que seu banco de dados local tenha armazenamento suficiente para dados temporários.

  • Balanceamento de carga mais eficiente

    No MongoDB 3.2 e anteriores, os nós mongos lidavam com o balanceamento de carga para um sharded cluster. Vários nós mongos competiam por um lock distribuído, e o nó vencedor migrava um chunk entre shards. No MongoDB 3.4, essa tarefa passa para o nó primário do replica set do config server, o que melhora significativamente tanto a concorrência quanto a eficiência do balanceamento de carga.

  • Operações de agregação mais ricas

    A versão 3.4 adiciona um grande número de operadores de agregação para fornecer capacidades de análise de dados mais poderosas. Por exemplo, bucket pode classificar dados convenientemente, $grahpLookup suporta operações de relacionamento mais complexas em comparação com $lookup da versão 3.2, e $addFields enriquece as operações de documentos, como somar campos específicos e armazenar o resultado como um novo campo.

  • Suporte para zonas de sharding

    Esta versão introduz zonas para um sharded cluster, substituindo o mecanismo anterior de sharding ciente de tags. Esse recurso permite atribuir dados específicos a um ou mais shards designados e simplifica a implantação de um sharded cluster em vários data centers.

  • Suporte para collation

    Anteriormente, as strings eram comparadas byte a byte. A collation permite especificar regras específicas de idioma para comparação de strings, como regras para maiúsculas/minúsculas e diacríticos. Isso possibilita comparações insensíveis a maiúsculas/minúsculas e ordenação com base em uma localidade específica.

  • Suporte para views somente leitura

    É possível criar uma coleção virtual a partir dos resultados de uma consulta em outra coleção ou view. Em seguida, é possível executar operações de leitura nessa view como faria em uma coleção padrão.