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:
-
MongoDB 3.2 (descontinuado)
O MongoDB 3.2 foi descontinuado. Para mais informações, consulte [[Aviso] O ApsaraDB for MongoDB descontinuou a versão 3.2 e lançou a versão 4.2 em 4 de fevereiro](t1859745.dita#concept_2347576).
É 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 |
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
dbhashem shards.Os comandos
findAndModifyedeleteOneaceitam chaves de shard parciais como predicados de consulta.Ao usar o comando
updateOnecomupsertdefinido comotrueem uma coleção fragmentada, exclua todas as chaves de shard nos predicados de consulta.Use o comando
unshardCollectionou o métodosh.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
moveCollectionpara 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 |
|
abortUnshardCollection |
sh.abortUnshardCollection() |
Interrompe uma operação |
|
Nenhum |
sh.shardAndDistributeCollection() |
Fragmenta uma coleção e redistribui imediatamente os dados com uma chave de shard existente. Equivalente a |
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,$gte$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
planCacheSetFilterdefinaindex filter.Especifique a limitação de tráfego. Use a opção
rejectpara rejeitar um Query Shape específico.
removeQuerySettingsexclui configurações de consulta.$querySettingsvisualiza configurações de consulta.
-
O comando
explain()inclui o tempo de otimização do plano de consulta emqueryPlanner.optimizationTimeMillis, medido em milissegundos.-
O parâmetro
defaultMaxTimeMSespecifica o limite de tempo padrão para uma única operação de leitura, em milissegundos.Operações aplicáveis:
find,aggregate(excluindo estágios$mergee$out),count,distinctedbHash.Se um cliente especificar
maxTimeMS,defaultMaxTimeMSnão terá efeito para essa operação.
O comando
bulkWriteexecuta operações de inserção, atualização e exclusão em várias coleções em uma única solicitação.updateOnesuporta ordenação com a opçãosort.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
clusterTimenos 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 |
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
rangeDeleterHighPriorityespecifica 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
maxSizenã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 |
|
|
Retorna o resultado de uma operação AND bit a bit em um valor INT ou LONG. |
|
|
Retorna o resultado de uma operação inversa bit a bit em um valor INT ou LONG. |
|
|
Retorna o resultado de uma operação OR bit a bit em um valor INT ou LONG. |
|
|
Retorna o resultado de uma operação XOR bit a bit em um valor INT ou LONG. |
|
|
Retorna a mediana aproximada (50º percentil). |
|
|
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
catalogCacheIndexLookupDurationMillisforam 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
$changeStreamSplitLargeEventdivide 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_ROLESretorna a função do usuário atual.Parâmetros globais relacionados a
analyzeShardKey,balancerequeryAnalyzersforam 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 pointsã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.
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,modifyeshardCollectionsão suportadas. Para mais informações, consulte Change Events.O campo
wallTimefoi adicionado aos Eventos de Alteração. O timestamp suporta operadores de conversão e exibição, incluindo$toDate,$tsSecondsetsIncrement.
Agregação
Instâncias de cluster fragmentado suportam
$lookupe$graphLookup.O suporte a JOINS do
$lookupfoi aprimorado.O suporte a travessia de grafos do
$graphLookupfoi aprimorado.O desempenho do
$lookupfoi melhorado, com aumento de até cem vezes em alguns cenários.
Para mais informações sobre
$lookup
e
$graphLookup
, consulte
e
.
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.
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.
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.
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>
<database>
: O nome do banco de dados para realizar o reshard.
<collection>
: O nome da coleção para realizar o reshard.
<shardkey>
: O nome da chave de shard.
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.
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.
O MongoDB 3.2 foi descontinuado. Para mais informações, consulte
.
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.