Esta página descreve as alterações e as novas funcionalidades introduzidas no MongoDB 8.0.
O MongoDB 8.0 é uma versão principal, o que significa que ele recebe suporte tanto para o MongoDB Atlas quanto para sistemas on-premises. O MongoDB 8.0 inclui alterações introduzidas no MongoDB Rapid Releases 7.1, 7.2 e 7.3. Esta página descreve as alterações introduzidas nessas Rapid Releases e no MongoDB 8.0.
O MongoDB Atlas executa o upgrade automático para clusters dedicados (M10+) para a versão principal se a opção Latest Release (auto-upgrades) estiver ativada. Se você quiser fazer o upgrade do seu MongoDB Atlas manualmente, veja upgrade de um cluster para uma nova versão do MongoDB, para aprender mais sobre as versões do cluster MongoDB no Atlas, veja Quais versões do MongoDB os clusters Atlas usam
Para saber mais sobre as diferenças entre as Rapid Releases e versões principais, consulte Versões do MongoDB .
Aviso
Limitações da versão anterior
Os avisos críticos abaixo afetam algumas versões anteriores do MongoDB. Se sua implantação depender de recursos afetados por um aviso crítico, atualize para a versão de patch mais recente disponível.
Emitir | Versões afetadas |
|---|---|
8.0.0 - 8.0.3 | |
8.0.0 - 8.0.3 |
Lançamentos de patches
8.0.17 - 19 de dezembro de 2025
Importante
MongoDB 8.0.17 contém uma correção para CVE-2025-14847.
Para obter as informações mais recentes sobre as atualizações de segurança do MongoDB, consulte Boletins de segurança do MongoDB.
Problemas corrigidos:
SERVIDOR-115508: criar buffers de tamanho mínimo para mensagens descompactadas
8.0.16 - 19 de novembro de 2025
Problemas corrigidos:
SERVIDOR-82688: corrige um bug que causava falha no
mongodquando o número de conexões excedia o limite desession_maxdo WiredTigerSERVIDOR-95374: Resolve um problema em que os índices compostos curingas podiam empurrar predicados incorretamente durante o planejamento de união ou query
SERVER-103960: implementa uma validação adequada no caminho do campo para garantir que o número de partes não exceda
255SERVIDOR-108565: melhorar o tratamento de gravações superdimensionadas em coleções de séries temporais.
SERVIDOR-112467: melhora o rastreamento e a geração de relatórios do número de conexões proxy pendentes
SERVIDOR-112520: corrige uma falha ao gravar em um índice geográfico ao inserir um documento em um bucket existente em uma coleção de séries temporais
WT-9575: corrige um problema em que as páginas com atualizações mais recentes do que o ID de transação mais antigo não foram enfileiradas para remoção
WT-15225: corrige um problema
EBUSYpara tabelas recém-criadas e operaçõesdrop()
8.0.15 - 2 de outubro de 2025
Importante
O uso de after-free no planejador de query do servidor MongoDB pode levar a uma falha ou a um comportamento indefinido.
Descrição: um usuário autorizado pode travar o servidor MongoDB causando uma leitura excessiva do buffer. Isso pode ocorrer ao executar uma operação DDL enquanto as queries executam.
Pontuação CVSS: 5.3
CWE: 416 use after free
Versões de produto afetadas: MongoDB Server 8.2.0, 8.0.14 a 8.0, 7.0.24 a 7.0 e versões principais anteriores à vida útil.
Problemas corrigidos:
SERVIDOR-105873: QueryPlannerParams não deve manter ponteiros de propriedade de IndexCatalogEntry
8.0.14 – 25 de setembro de 2025
Problemas corrigidos:
SERVER-100448: o registro de comandos não deve depender do FCV na inicialização
SERVIDOR-103742: opWriteConcernCounters podem incorporar ilegalmente bytes NUL em ServerStatus
SERVER-103841: vazamento de memória no TransactionCoordinator associado à fonte de cancelamento de longa duração
SERVER-105478: separe as entradas de oplog qualificadas e não qualificadas para o aplicador com secondaryDelaySecs
WT-14140: bloqueio de esquema desnecessário obtido para o "arquivo:" dhandles ativos que não são varridos
WT-14653: Adiciona registros/estatísticas à reconciliação para acompanhar as atualizações de HS
8.0.13 - Ago 21 de 2025
Problemas corrigidos:
SERVER-77172: o thread
abortExpiredTransactionspode ficar preso se não conseguir finalizar uma sessãoSERVIDOR-82180: inserções limitadas no primário podem ter uma ordem natural diferente das secundárias
SERVIDOR-91686: melhore o manipulador de sinais
mongodpara imprimir o objeto de comando do thread atualSERVIDOR-94315: bug de filtragem de shard com agrupamento
SERVIDOR-102670: série temporal ordenada incorreta inserir tratamento de erros
SERVIDOR-107361: a verificação de rollover no catálogo de buckets pode falhar ao verificar o esquema misto para medições grandes
8.0.12 - julho 23, 2025
Importante
Devido ao CVE-2025-10061, no MongoDB 8.0 antes de 8.0.12, um usuário autorizado pode causar uma falha no MongoDB Server por meio de uma query $group especialmente criada. Essa vulnerabilidade está relacionada ao manuseio incorreto de certas funções do acumulador quando parâmetros adicionais são especificados na operação $group. Essa vulnerabilidade pode levar à negação de serviço se acionada repetidamente.
Esse problema afeta as seguintes versões do MongoDB Server:
8.1.0 - 8.1.1
8.0.0 - 8.0.11
7.0.0 - 7.0.21
6.0.0 - 6.0.24
Pontuação CVSS: 6.5
CWE: CWE-20 validação de entrada inadequada
Problemas corrigidos:
SERVER-95523: o upsert não lida corretamente com a nova tentativa de DuplicateKey
SERVER-95524: evite tentar novamente em caso de erro de chave duplicada para upserts em transações com vários documentos
SERVIDOR-97368: ativar exclusões de TTL em coleções de séries temporais que contenham dados anteriores a 1970
SERVIDOR-99342: as métricas de redução da taxa de transferência não estão sendo atualizadas
Servidor-99616 $group pode clicar em MONGO_verify
WT-14391: Verifique se o servidor de despejo está em execução antes de abrir o HS
8.0.11 - 30 junho, 2025
Problemas corrigidos:
SERVIDOR-105375: use o plano EOF para expressões sempreFalse dentro de elemMatch
SERVIDOR-106614: lista de hosts do conjunto de réplicas em config.shards entradas não atualizadas para shards adicionados antes de 8.0
8.0.10 - 04 junho, 2025
Importante
Uma resposta KMIP malformada pode resultar em violação de acesso de leitura
Devido ao CVE-2025-12657, no MongoDB 8.0 antes de 8.0.10, o analisador de resposta KMIP embutido em mongo binários é excessivamente tolerante a determinados pacotes malformados e pode analisá-los em objetos inválidos. Leituras posteriores desse objeto podem resultar em violações de acesso de leitura.
Esse problema afeta as seguintes versões do MongoDB Server:
8.0.0 - 8.0.9
7.0.0 - 7.0.21
Pontuação CVSS: 5.9
CWE: CWE-754: verificação imprópria para condições incomuns ou excepcionais
Problemas corrigidos:
SERVIDOR-101230: Defeito da Análise de Coveridade 155126: Usando iterador inválido
SERVER-90495: suporta iniciar ou retomar a partir do recordId excluído na verificação de ordem natural
SERVER-92806: a entrada do cache do plano ignora o agrupamento do índice com $elemMatch
SERVER-96197: os _resolvedNamespaces do ExpressionContext não conseguem distinguir entre coleções com o mesmo nome em bancos de dados diferentes
SERVIDOR-100785: falha fatal do servidor de configuração mongodb após a emissão do comando reshardCollection malformado
WT-13216: avalie o uso da verificação de despejo do cache no compacto
8.0.9 - 1 maio de 2025
Importante
A correção para o manuseio incorreto de dados incompletos pode impedir que os mongos aceitem novas conexões
Devido ao CVE-2025-6714, no MongoDB 8.0 antes de 8.0.9, O componente mongos do servidor MongoDB pode deixar de responder a novas conexões devido ao manuseio incorreto de dados incompletos. Esse problema afeta clusters MongoDB fragmentados que são configurados com suporte a balanceador de carga para mongos usando HAProxy em portas especificadas.
Esse problema afeta as seguintes versões do MongoDB Server:
8.0.0 - 8.0.8
7.0.0 - 7.0.19
6.0.0 - 6.0.22
Pontuação CVSS: 7.5
CWE: CWE-834 iteração excessiva E CWE-400 consumo descontrolado de recursos
Problemas corrigidos:
SERVIDOR-92236: as migrações de chunks devem usar fontes de cancelamento de curta duração
SERVIDOR-106753: o manuseio incorreto de dados incompletos pode impedir que
mongosaceite novas conexões
8.0.8 - abr 14 de 2025
Problemas corrigidos:
SERVIDOR-103328 Tratamento incorreto de BSONColumn para pular após RLE diferente de zero para tipo duplo
8.0.7 - abr 14 de 2025
Importante
O MongoDB Server pode ser suscetível ao escalonamento de privilégio devido ao estágio $mergeCursors
Devido ao CVE-2025-6713, no MongoDB 8.0 antes de 8.0.7, um usuário não autorizado pode aproveitar um pipeline de agregação especialmente criado para acessar dados sem a autorização adequada devido ao manuseio inadequado do estágio $mergeCursors em MongoDB Server. Isso pode levar ao acesso a dados sem autorização adicional .
Esse problema afeta as seguintes versões do MongoDB Server:
8.0.0 - 8.0.6
7.0.0 - 7.0.18
6.0.0 - 6.0.21
Pontuação CVSS: 7.7
CWE: CWE-285: autorização imprópria
Problemas corrigidos:
SERVIDOR-106752 O MongoDB Server pode ser suscetível ao escalonamento de privilégio devido ao estágio
$mergeCursors
8.0.6 - Mar 19, 2025
Problemas corrigidos:
SERVER-87442 Suporte à Plataforma: adicione suporte para Macos 14 sonoma (ARM64 e AMD64)
SERVIDOR-89757 checkSbeStatus deve verificar todos os nós
SERVER-97911 Query com "_id in empty array" atravessa a coleção completa quando recebe o índice _id como dica
SERVER-100901 Relaxa o resumo do usuário invariante para afirmar no ShardingTaskExecutor
SERVER-101838 Revert SERVER-93101 + SERVER-91121
8.0.5 - 20 fevereiro de 2025
Importante
vulnerabilidade de negação de serviço de pré-autenticação na autenticação OIDC do servidor MongoDB
Devido ao CVE-2025-6709, no MongoDB 8.0 antes de 8.0.5, O MongoDB Server é suscetível a uma vulnerabilidade de negação de serviço devido ao manuseio inadequado de valores de data específicos na entrada JSON ao usar a autenticação OIDC. Isso pode ser reproduzido usando o mongo shell para enviar uma carga útil de JSON maliciosa, levando a uma falha invariante e à falha do servidor .
Esse problema afeta as seguintes versões do MongoDB Server:
8.0.0 - 8.0.4
7.0.0 - 7.0.16
O mesmo problema afeta o MongoDB Server v6.0, mas um invasor só pode induzir a negação de serviço após a autenticação. Esse problema afeta as seguintes versões do MongoDB Server :
6.0.0 - 6.0.20
Pontuação CVSS: 7.5
CWE: CWE-20: validação de entrada inadequada
Importante
Negação de pré-autenticação da vulnerabilidade de estouro de pilha de serviço na análise de JSON por meio de recursão excessiva no MongoDB
Devido ao CVE-2025-6710, no MongoDB 8.0 antes de 8.0.5, O MongoDB Server pode ser suscetível ao Stack Overflow devido ao mecanismo de análise JSON, em que entradas JSON especificamente criadas podem induzir níveis desnecessários de recursão, resultando em consumo excessivo de espaço de pilha. Essas entradas podem levar a um Stack Overflow que faz com que o servidor falhe, o que pode ocorrer na pré-autorização.
Esse problema afeta as seguintes versões do MongoDB Server:
8.0.0 - 8.0.4
7.0.0 - 7.0.16
O mesmo problema afeta o MongoDB Server v6.0, mas um invasor só pode induzir a negação de serviço após a autenticação. Esse problema afeta as seguintes versões do MongoDB Server :
6.0.0 - 6.0.20
Pontuação CVSS: 7.5
CWE: CWE-674: recursão descontrolada
Problemas corrigidos:
SERVIDOR-51366 Configurar pastas criadas pelo instalador
SERVIDOR-93497 Mover a invalidação de cache do usuário do OpObserver para os manipuladores onCommit
SERVER-95672 Índices em campos de array que contêm subarrays não incluem alguns resultados
SERVER-97044 Corrigir um problema em que os fluxos de alteração podem gerar incorretamente um evento "descartar" durante a refragmentação ou desfragmentação de uma coleção que está ou estava usando fragmentação de zona
SERVIDOR-97860 O caminho expresso pode retornar resultados incorretos ao verificar um índice único de vários campos
SERVIDOR-99290 Coleções inválidas de buckets de séries temporais impedem a conclusão do FCV 8.0 atualização
SERVIDOR-99345 Impedir a fragmentação/moção de uma coleção de buckets de série temporal sem as opções de "série temporal" no FCV 8.0+
SERVER-106748 negação de serviço pré-autenticação ao aceitar a autenticação OIDC
SERVER-106749 vulnerabilidade de estouro de pilha de serviço de pré-autenticação na análise de JSON por meio de recursão excessiva no MongoDB
WT-12846 Corrija como a caminhada compacta lida com o EBUSY a partir do checkpoint flush_lock
8.0.4 - 9 de dezembro de 2024
SERVIDOR-73641 A filtragem de séries temporais pode perder eventos de longo alcance quando fragmentada
SERVER-82037 A memória usada pelos derramamentos do classificador pode crescer sem limite
SERVIDOR-94559 A medição de séries temporais exclui a atualização do minTime de um bucket
SERVER-95067 inserções de séries temporais podem gerar vários lotes fazendo referência ao mesmo bucket
SERVER-95724 ReshardingOplogSessionApplication clona informações da sessão applyOps repetíveis com admin.$cmd como modifiedNamespace
8.0.3 - 24 de outubro de 2024
Importante
A invalidação inadequada de bytes nulos pode levar a leituras excessivas de buffer no MongoDB Server
No MongoDB 8.0 e 8.0.1, um usuário autorizado pode desencadear falhas ou receber o conteúdo de leituras excessivas do buffer da memória do servidor emitindo solicitações especialmente criadas que constroem BSON malformado no MongoDB Server.
Esse problema afeta as versões do MongoDB Server :
5.0.0 - 5.0.29
6.0.0 - 6.0.18
7.0.0 - 7.0.14
8.0.0 - 8.0.1
Problemas corrigidos:
SERVIDOR-96419 A minimização inadequada de bytes nulos pode levar a leituras excessivas de buffer no MongoDB Server
8.0.1 - 9 de outubro de 2024
Problemas corrigidos:
SERVIDOR-76883 Reduzir o número de chats de registros de "função não existe" para usuários de origem externa
SERVER-82221 listCollections e listIndexes devem incluir namespaces pendentes de confirmação
SERVIDOR-94635 Tornar os parâmetros de atualização da sessão configuráveis
SERVIDOR-95244 Instruções upsert que resultam em uma inserção podem falhar com tassert 9146500 quando o cliente se conecta diretamente ao shard
WT-13409 Um ret em __txn_checkpoint não é tratado
8.0.0 - 2 de outubro de 2024
O resto desta página descreve as alterações e novas funcionalidades introduzidas no MongoDB 8.0.
Melhorias no desempenho
O MongoDB 8.0 introduz melhorias significativas de desempenho do MongoDB 7.0, incluindo, mas não limitado a:
Taxa de transferência de leitura até 36% melhor.
Até 32% de desempenho melhor para aplicativos da web típicos.
Escritas simultâneas até 20% mais rápidas durante a replicação.
Observação
A quantidade de melhoria de desempenho pode variar dependendo da configuração de suas cargas de trabalho e instâncias do banco de dados .
Novo comando de gravação em massa
A partir do MongoDB 8.0, você pode usar o novo comando bulkWrite para executar muitas operações de inserção, atualização e exclusão em várias collections em uma única solicitação. O método db.collection.bulkWrite() existente permite somente a você modificar uma coleção em uma solicitação.
bulkWrite as operações no MongoDB 8.0 podem ser executadas até 56% mais rápidas do que as operações de gravação em massa no MongoDB 7.0.
Processamento de bloqueio de série temporal
A partir da versão 8.0, O MongoDB pode executar determinadas queries de séries temporais usando processamento de blocos. Essa melhoria de desempenho processa as queries em "blocos" de dados, em vez de valores individuais. O processamento de blocos melhora a velocidade de execução da query e a taxa de transferência ao trabalhar com coleções de séries temporais.
Em comparação com queries de séries temporais executadas no MongoDB 7.0 ou versões anteriores, o processamento em bloco para dados de séries temporais no MongoDB 8.0 pode lidar com volumes maiores de dados e melhorar a taxa de transferência em alguns casos em mais de 200% para operações $group e queries analíticas.
Para ver se sua query de série temporal usa processamento de blocos, marque o campo explain.queryPlanner.winningPlan.slotBasedPlan.stages na saída do plano de explicação.
Para saber mais, consulte Processamento de blocos.
Atualizações de suporte da plataforma
A partir do MongoDB 8.0, as novas versões do MongoDB Server (principais e secundárias) suportam a versão secundária mínima do sistema operacional (OS) definida pelo fornecedor do sistema operacional. Depois que uma versão secundária do sistema operacional não é mais suportada pelo fornecedor do sistema operacional, o MongoDB atualiza o MongoDB Server para oferecer suporte à próxima versão secundária do sistema operacional. Para obter detalhes, consulte Melhorias no suporte à plataforma MongoDB.
O MongoDB 8.0 é compatível com as seguintes versões secundárias mínimas do sistema operacional:
Red hat enterprise Linux 8.8
Red hat enterprise Linux 9.3
SUSE Linux enterprise server 15 SP5
Amazon Linux 2023 versão 2023.3
Exploração madeireira
A partir do MongoDB 8.0, você pode configurar o analisador de banco de dados para registrar operações lentas com base no tempo que o MongoDB gasta trabalhando nessa operação, em vez da latência total da operação. Isso significa que fatores como a espera de travas e o controle de fluxo não afetam o fato de uma operação exceder o limite de operação lenta.
Essa alteração fornece as seguintes melhorias para geração de registros e análise de queries:
As queries lentas são registradas com mais precisão com base no tempo que o MongoDB gasta processando a query.
Ferramentas de análise de query, como o Query Profiler, o Performance Advisor e o Search Query Telemetry relatam operações lentas com base em
workingMillisem vez dedurationMillis. Esta alteração fornece uma visão mais precisa das queries problemáticas.Os registros de query lenta incluem uma métrica para o tempo enfileirado em tickets de execução,
queues.execution.totalTimeQueuedMicros. Essa métrica ajuda a identificar se uma operação é lenta devido ao tempo que leva para ser concluída ou ao tempo que passa esperando o início.
Para mais informações, consulte db.setProfilingLevel().
Database Profiler
Ao especificar um filtro para o analisador de profiler de banco de dados de dados, você pode registrar operações com base na nova métrica workingMillis . Você pode registrar operações com base em workingMillis e durationMillis e definir cada métrica para um limite diferente.
Agregação
Conversão de BinData
A partir do MongoDB 8.0, você pode usar o operador $convert para executar as seguintes conversões:
String values to binData values
valores binData para valores de string
O MongoDB 8.0 também inclui uma nova expressão assistente , $toUUID, que fornece sintaxe simplificada para converter strings em valores UUID .
$queryStats
A partir do MongoDB 7.1, o estágio $queryStats retorna estatísticas para queries registradas.
Melhorias no Change Stream
A partir do MongoDB 8.0, $queryStats melhora o rastreamento e as métricas de relatórios para change streams. Para mais informações, consulte $queryStats Change Streams .
Comportamento $rank e $denseRank
A partir do MongoDB 8.0, null e valores de campo ausentes nas operações $denseRank e $rank sortBy são tratados da mesma forma ao calcular classificações. Essa alteração torna o comportamento de denseRank e rank consistente com $sort.
Segurança
Queryable Encryption
A partir do MongoDB 8.0, A Queryable Encryption oferece suporte a queries de intervalo em campos criptografados usando os operadores $lt, $lte, $gt e $gte . Para obter detalhes, consulte Operações suportadas para Queryable Encryption. Para habilitar queries de intervalo em campos criptografados, consulte Criar um esquema de criptografia.
Esquema OCSF para mensagens de registro
A partir do MongoDB 8.0, você pode especificar o esquema OCSF para mensagens de registro de auditar . O esquema OCSF fornece registros em um formato padronizado compatível com processadores de registros.
Para definir o esquema usado para mensagens de registro, use a opção de arquivo de configuração auditLog.schema .
Para obter por exemplo , mensagens de registro no formato OCSF, consulte Mensagens de auditoria do esquema OCSF.
Fila de entrada
O MongoDB 8.0 introduz uma nova fila para o controle de entrada de entrada. As operações que aguardam a entrada da rede no banco de dados entram na fila de entrada. Por padrão, a fila é irrestrita, o que significa que o MongoDB permite que todas as operações sejam executadas por esse estágio sem filas. Definir o máximo da fila para um valor específico permite enfileirar as operações nesse estágio se o número de operações simultâneas atingir o limite especificado.
Fragmentação
A partir do MongoDB 8.0, você pode mover collections não fragmentadas e mover collections não fragmentadas entre shards em clusters fragmentados.
Movendo uma coleção
A partir do MongoDB 8.0, você pode mover uma coleção não fragmentada para um fragmento diferente usando o comando moveCollection .
Para obter detalhes, consulte Coleções móveis. Para começar, consulte Mover uma coleção.
Movendo coleções que têm Change Streams
A partir do MongoDB 8.0, movePrimary não invalida as collections de eventos que têm change streams. Os change streams podem continuar lendo eventos de collections depois que as collections forem movidas para um novo shard.
Para obter detalhes, consulte Change Streams.
Desfragmentando uma collection
A partir do MongoDB 8.0, você pode desfragmentar collections fragmentadas existentes com o comando unshardCollection ou o método sh.unshardCollection() . Esta operação move todos os documentos na coleção para um shard especificado ou o shard com a menor quantidade de dados.
Coleções de séries temporais de refragmentação
A partir do MongoDB 8.0.10, você pode refragmentar uma coleção de séries temporais. Todos os shards na coleção de séries temporais devem executar a versão 8.0.10 ou posterior para serem refragmentados.
Para obter detalhes, consulte Collections não fragmentadas. Para começar, consulte Desfragmentar uma collection.
Config Shards
A partir do MongoDB 8.0, você pode configurar um servidor de configuração de configuração para armazenar os dados do aplicação , além dos metadados usuais do cluster fragmentado . Um nó mongod que oferece funcionalidade de servidor de servidor de configuração de shard é chamado de shard de configuração. Um nó do mongod que executa como um --configsvr autônomo sem funcionalidade de servidor de fragmento é chamado de servidor de configuração dedicado.
Para configurar um servidor de configuração dedicado para ser executado como um shard de configuração, execute o comando transitionFromDedicatedConfigServer .
Para configurar um shard de configuração para ser executado como um servidor de configuração dedicado, execute o comando transitionToDedicatedConfigServer .
Para obter detalhes, consulte Config Shard. Para começar, consulte Iniciar um cluster fragmentado com um shard de configuração. Para converter um conjunto de réplicas em um cluster fragmentado com um shard de configuração, consulte Converter um conjunto de réplicas em um cluster fragmentado com um servidor de configuração incorporado.
Novos comandos de banco de dados
Novos métodos de mongosh
Métricas do serverStatus
A partir do MongoDB 8.0, serverStatus inclui os seguintes novos campos shardingStatistics em sua saída:
shardingStatistics.countTransitionToDedicatedConfigServerStartedshardingStatistics.countTransitionToDedicatedConfigServerCompletedshardingStatistics.countTransitionFromDedicatedConfigServerCompleted
O MongoDB 7.1 inclui as seguintes novas estatísticas de fragmentação para migrações de chunks:
parte padrão por fragmento
A partir do MongoDB 7.2, quando você fragmenta uma collection vazia com uma chave de fragmento com hash, a operação cria uma parte por shard por padrão. Anteriormente, a operação criava dois chunks por padrão.
função directShardOperations
A partir do MongoDB 8.0, você pode usar a função directShardOperations para realizar operações de manutenção que exigem que você execute comandos diretamente em um shard.
Aviso
Executar comandos utilizando a função directShardOperations pode fazer com que seu cluster pare de funcionar corretamente e pode causar corrupção de dados. Use a função directShardOperations apenas para fins de manutenção ou sob a orientação do suporte do MongoDB . Quando terminar de executar as operações de manutenção, pare de usar a função directShardOperations .
dbhash Pode executar diretamente em um nó em um cluster
A partir do MongoDB 8.0.5, você pode executar dbHash diretamente em um fragmento. Para obter uma lista completa de comandos diretos do nó, consulte Comandos diretos do nó fragmentado.
Cursores de escape ativados para clusters fragmentados
A partir do MongoDB 7.1, mongos suporta cursores de escape quando a solicitação getMore de um cliente define o sinalizador exhaustAllowed . Isto pode melhorar o desempenho da consulta em clusters fragmentados quando o cliente recebe múltiplas respostas do servidor do banco de dados de dados para uma única solicitação.
Faixa de portas mongos
A partir do MongoDB 7.1, mongos aceita --port valores de [0, 65535]. Para mais informações, consulte --port.
Query com chave de shard parcial
A partir do MongoDB 7.1, findAndModify e deleteOne() podem usar uma chave de shard parcial para consultar uma collection fragmentada.
Aprimoramentos de refragmentação
O MongoDB 8.0 introduz melhorias significativas de desempenho nas operações de refragmentação, reduzindo significativamente o tempo de execução da operação.
Além disso, se a aplicação e o cluster atenderem aos requisitos e limitações necessários, você poderá refragmentar a collection na mesma chave usando o comando reshardCollection para redistribuir sua collection, que é muito mais rápido do que o procedimento de migração de intervalo alternativo.
As seguintes opções são adicionadas ao comando:
Campo | Descrição |
|---|---|
| Habilita a refragmentação da mesma chave. |
Para obter exemplos, consulte Redistribuir dados para novos shards.
Backups autogerenciados de clusters fragmentados
A partir do MongoDB 7.1, os comandos fsync e fsyncUnlock podem executar operações de fsync em clusters fragmentados.
Ao executar no mongos com o campo lock definido como true, o comando fsync libera as gravações da camada de armazenamento para o disco e bloqueia cada shard, evitando gravações adicionais. O comando fsyncUnlock pode então ser utilizado para desbloquear o cluster.
Esse recurso permite backups autogerenciados de clusters fragmentados usando mongodump.
Comportamento de upsert do UpdateOne em coleções fragmentadas
A partir do MongoDB 7.1, ao usar updateOne() com upsert: true em uma coleção fragmentada, você não precisa incluir a chave de shard completa no filtro.
Estágio $lookup em transações com collections fragmentadas
A partir do MongoDB 8.0, você pode usar o estágio $lookup dentro de uma transação enquanto direciona uma collection fragmentada.
Replicação
Preocupação majoritária com gravação
A partir do MongoDB 8.0, as operações de gravação que usam a preocupação de gravação "majority" retornam uma confirmação quando a maioria dos membros do conjunto de réplicas tiver escrito a entrada de oplog para a alteração. Isso melhora o desempenho de "majority" gravações. Em versões anteriores, essas operações aguardavam e retornavam uma confirmação após a maioria dos membros do conjunto de réplicas aplicar a alteração.
Se o aplicação ler de um secundário imediatamente após receber uma confirmação de uma operação de gravação { w: "majority" } (sem uma sessão causalmente consistente ), a query poderá retornar resultados que não incluam alterações da gravação.
Novas métricas replSetGetStatus
A partir do MongoDB 8.0, as seguintes métricas estão disponíveis ao usar o comando replSetGetStatus :
Buffers de oplog
A partir do MongoDB 8.0, os secundários gravam e aplicam entradas de oplog para cada lote em paralelo. Um thread de gravador lê novas entradas do primário e as grava no oplog local. Um thread aplicador aplica de forma assíncrona essas alterações ao banco de banco de dados local . Isso aumenta a taxa de transferência de replicação para secundários.
Isso introduz uma alteração interruptiva para metrics.repl.buffer, pois agora fornece métricas em dois buffers em vez de um.
O MongoDB 8.0 descontinua as seguintes métricas de status do servidor :
O MongoDB 8.0 adiciona as seguintes métricas de status do servidor :
TCMalloc atualizado
A partir do MongoDB 8.0, O MongoDB usa uma versão atualizada do TCMalloc que usa caches por CPU, em vez de caches por thread, para reduzir a fragmentação da memória e tornar seu banco de dados de dados mais resiliente a cargas de trabalho de alto estresse.
A nova versão do TCMalloc afeta diretamente as recomendações de produção anteriores para Transparent Huge Pages. Para saber mais, consulte Otimização de desempenho do TCMalloc para um sistema autogerenciado.
Métricas do serverStatus
A partir do MongoDB 8.0, as seguintes novas serverStatus métricas relatam informações sobre o uso tcmalloc :
Alterações gerais
Adicionar comentários às configurações da query
A partir do MongoDB 8.0.4, você pode usar para adicionar comentários às configurações da setQuerySettings query. Por exemplo, adicione um comentário que indique por que você adicionou configurações de query.
Desempenho do desligamento
A partir do MongoDB 8.0, Bulk.insert() e cargas de trabalho de ingestão de dados podem ter um desempenho melhor. No entanto, desligar o MongoDB imediatamente após a execução dessas cargas de trabalho pode levar mais tempo devido aos dados extras que estão sendo liberados para o disco.
Armazene dados de aplicativos em shards de configuração
A partir do MongoDB 8.0, você pode configurar um servidor de configuração de configuração para armazenar dados do aplicação , além dos metadados usuais do cluster fragmentado . O servidor de configuração é então conhecido como shard de configuração. Para obter detalhes, consulte Config Shards.
Melhorias na compactação
A partir do MongoDB 7.3, o comando compact inclui uma nova opção freeSpaceTargetMB para especificar a quantidade mínima de espaço de armazenamento, em megabytes, que deve ser recuperável para que a compactação continue.
Compactação de background
A partir do MongoDB 8.0, você pode usar o novo comando autoCompact para executar a compactação em segundo plano. Se ativado, o servidor tenta manter o espaço livre dentro de cada coleção e índice abaixo do valor freeSpaceTargetMB especificado.
Opção dryRun
Se ativado, o comando compact retorna uma estimativa de quanto espaço, em bytes, a compactação pode recuperar da collection direcionada. Se você executar compact com dryRun definido como true, o MongoDB retornará apenas o valor estimado e não executará nenhum tipo de compactação.
Operações DDL simultâneas
A partir do MongoDB 7.1, quando você executa várias operações de DDL que têm como alvo diferentes collections do mesmo banco de dados de dados, o MongoDB executa essas operações simultaneamente.
Esta alteração adiciona dois novos tipos ao campo serverStatus locks e saída currentOp.locks :
DDLDatabaseDDLCollection
Validação de banco de dados em queries de agregação mongos
A partir do MongoDB 7.2, as query do aggregation pipeline que tentam usar reconhecimento de data center inexistentes em implantações do mongos retornam erros de validação.
Nas versões anteriores, essas query de agregação retornam cursor vazios.
Operações de DDL
No MongoDB 8.0, se você adicionar ou remover um fragmento enquanto o cluster executa uma operação DDL (operação que modifica uma coleção como reshardCollection), qualquer operação que adicione ou remova um fragmento só será executada após a conclusão da operação DDL simultânea.
Códigos de erro para exceder o limite de tamanho do pipeline
A partir do MongoDB 7.1, um comando de aggregation lançará um erro quando um pipeline exceder o limite de estágio do pipeline. Para obter mais detalhes, consulte Restrições do Número de Estágios.
O campo getField suporta todas as strings
A partir do MongoDB 7.2, você pode especificar qualquer expressão válida que se resolva em uma string para a entrada field do operador $getField . Em versões anteriores, o field aceita somente constantes de string.
Construções de índice aprimoradas
A partir do MongoDB 7.1, as compilações de índice são aprimoradas com relatórios de erros mais rápidos e maior resiliência a falhas. Você também pode definir o espaço mínimo em disco disponível necessário para compilações de índice usando o novo parâmetro indexBuildMinAvailableDiskSpaceMB , que interrompe as compilações de índice se o espaço em disco estiver muito baixo.
As seguintes novas métricas de criação de índice foram adicionadas:
Para obter detalhes completos, consulte Index Builds.
Novos parâmetros
Parâmetro auditConfig
O MongoDB 7.1 adiciona o parâmetro de cluster auditConfig , que contém informações sobre configurações de auditar de instâncias de servidor mongod e mongos .
Parâmetro defaultMaxTimeMS
A partir do MongoDB 8.0, você pode usar o parâmetro de cluster defaultMaxTimeMS para especificar um limite de tempo padrão para que as operações de leitura individual sejam concluídas.
Parâmetro indexBuildMinAvailableDiskspaceMB
O MongoDB 7.1 adiciona o parâmetro indexBuildMinAvailableDiskSpaceMB , que permite definir o espaço mínimo em disco disponível necessário para a criação de índices.
tcmallocEnableBackgroundThread Parameter
A partir do MongoDB 8.0, o tcmallocEnableBackgroundThread está habilitado por padrão. Isso permite que o MongoDB libere periodicamente a memória de volta para o sistema operacional.
Nova forma de query e configurações de query
O MongoDB 8.0 introduz uma nova forma de query. A forma de query preexistente é renomeada como forma de query do cache do plano.
A partir do MongoDB 8.0, você pode adicionar configurações de query para a nova forma de query. O otimizador de query usa as configurações de query como uma entrada adicional durante o planejamento de query, o que afeta o plano selecionado para executar uma query que tenha uma forma de query correspondente.
As configurações de query melhoraram a funcionalidade em comparação com os filtros de índice. Os filtros de índice também ficaram obsoletos a partir do MongoDB 8.0, e você deve evitá-los.
Para adicionar configurações de query, use o comando
setQuerySettings.Para excluir configurações de query, use o comando
removeQuerySettings.Para recuperar as configurações de query, use um estágio
$querySettingsem um agregação pipeline.Para bloquear uma forma de query, consulte filtros de rejeitar operação.
Para definir o nível de verbosidade do registro para queries rejeitadas, use o parâmetro
systemLog.component.query.rejected.verbosity.
A partir do MongoDB 8.0, queryShapeHash está incluído na seguinte saída:
Comando
explainno campoexplain.queryShapeHashanalisador de profiler de banco de dados de dados no campo
system.profile.queryShapeHashEstágio de pipeline de agregação $currentOp no campo
$currentOp.queryShapeHash$queryStatsestágio noqueryShapeHashcampo
A partir do MongoDB 8.0, o campo queryHash existente é duplicado em um novo campo chamado planCacheShapeHash. Se você estiver usando uma versão anterior do MongoDB , verá apenas o campo queryHash. As futuras versões do MongoDB removerão o campo queryHash obsoleto, e você precisará usar o campo planCacheShapeHash em seu lugar.
Opção numInitialChunks removida
A partir do MongoDB 7.2, a opção numInitialChunks foi removida do comando shardCollection. O servidor cria automaticamente chunks em cada shard em um cluster ao usar a fragmentação com hash para uma collection vazia.
Parameter Filtering
Iniciando no MongoDB 8.0, o comando getParameter aceita um campo setAt . Você pode usar esse campo para filtrar o documento de retorno allParameters: true para mostrar apenas os parâmetros que você pode definir na inicialização ou no tempo de execução.
Leia sobre as coleções com capas
A partir do MongoDB 8.0, você pode usar a preocupação de leitura "snapshot" em coletas limitadas .
Alteração de saída doserverStatus
A partir do MongoDB 7.1, a saída de comando serverStatus inclui as seguintes novas métricas:
A partir do MongoDB 7.2, a saída de comando serverStatus inclui as seguintes novas métricas:
A partir do MongoDB 7.3, a saída de comando serverStatus inclui as seguintes novas métricas:
A partir do MongoDB 8.0, a saída de comando serverStatus inclui as seguintes novas métricas:
Opção de classificação
A partir do MongoDB 8.0, updateOne(), replaceOne() e update têm um campo sort opcional para ordenar documentos antes de aplicar uma atualização.
As versões anteriores utilizam os métodos findAndModify() e findOneAndUpdate() para atualizar o primeiro documento em uma ordem de classificação especificada pelo usuário. O suporte para gravações repetidas exige que esses métodos copiem o documento inteiro para uma coleção lateral especial para cada nó, que é uma operação mais cara do que o método updateOne() com a nova opção sort .
Especificar dicas de índice de query para comandos distintos
A partir do MongoDB 7.1, o campo hint está disponível no comando distinct , permitindo a você especificar o índice da query.
TTL Indexes
A partir do MongoDB 7.1, você pode criar índices TTL em capped collections.
Planejamento e execução de queries
Estágios de query Express
A partir do MongoDB 8.0, um conjunto limitado de queries (incluindo _id correspondências de igualdade) ignora o planejamento e a execução de queries regulares. Em vez disso, essas queries usam um plano de varredura de índice otimizado que consiste em um destes estágios do plano:
EXPRESS_CLUSTERED_IXSCANEXPRESS_DELETEEXPRESS_IXSCANEXPRESS_UPDATE
Para obter mais informações sobre planos de query, consulte Explicar resultados.
Saída do plano de query rejeitada
A partir do MongoDB 8.0, os planos de query rejeitados contêm apenas a parte find da query. Em versões anteriores, os planos rejeitados podem conter estágios de agregação como $group. Esses estágios de agregação não são usados pelo planejador de query para escolher o plano vencedor, portanto, o campo rejectedPlans contém apenas a parte da query que foi usada para escolher o plano vencedor.
Essa alteração também garante que os executionStats para planos rejeitados sejam diferentes de zero. Como resultado, agora você pode ver estatísticas como quantos documentos ou chaves um plano rejeitado examinou.
Para obter mais informações sobre planos de query rejeitados, consulte explain.queryPlanner.rejectedPlans.
Desativação do mecanismo de execução baseado em slot
A partir do MongoDB 8.0, O MongoDB desativa automaticamente o mecanismo de execução baseado em slots em collections com um índice com um prefixo de caminho com hash de um caminho sem hash, em que ambos os caminhos estão no índice.
Operações de inserção de vários documentos em lote
A partir do MongoDB 8.0, as operações de inserção em massa fora de transações não podem mais produzir entradas oplog individuais. Em vez disso, o MongoDB normalmente agrupa inserções em massa como uma única entrada. O evento de fluxo de alteração insert para cada documento tem o mesmo clusterTime.
Essa alteração aumenta o desempenho de operações de inserção de vários documentos e elimina possíveis atrasos de atraso de replicação causados por várias gravações oplog .
Os provedores de identidade da OIDC podem compartilhar um emissor
A partir do MongoDB 8.0, quando vários fornecedores de identidade (IDP) são definidos, o parâmetro oidcIdentityProviders aceita valores issuer duplicados, desde que o valor audience seja exclusivo para cada emissor. Isso também está disponível nas versões 7.3 e 7.0.
Namespaces em Subpipelines
A partir do MongoDB 8.0, os namespaces em subpipelines dentro $lookup e $unionWith são validados para garantir o uso correto dos campos from e coll .
Para obter detalhes, consulte $lookup subpipelines e $unionWith subpipelines.
Tempo de otimização do planejador de queries
O explain() método agora retorna informações sobre o tempo de otimização do planejador de query. O status mostra o tempo em milissegundos que o planejador de query gastou em queryPlanner.optimizationTimeMillis otimizações.
Procedimentos de atualização
Importante
Versão de compatibilidade de recursos
Para atualizar para o MongoDB 8.0 a partir de uma implantação do 7.0 , a implantação do 7.0 deve ter featureCompatibilityVersion configurado como 7.0. Para verificar a versão:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
Para atualizar para o MongoDB 8.0, consulte as instruções de atualização específicas para o MongoDB deployment:
Caso você precise de orientação ao atualizar para a versão 8.0, os serviços profissionais do MongoDB oferecem suporte à atualização de versões principais, o que ajuda a garantir uma transição tranquila e sem interrupções para seu aplicativo do MongoDB. Para saber mais, consulte a página Consultoria do MongoDB.
Download
Para baixar o MongoDB 8.0, acesse a Central de downloads do MongoDB.
Considerações de downgrade
Somente downgrades de versão única são suportados
O MongoDB suporta apenas downgrades de versão única. Você não pode fazer o downgrade para uma versão que esteja várias versões atrás da versão atual.
Por exemplo, você pode fazer downgrade de uma série 8.0para uma série 7.0. No entanto, não há suporte para desatualização adicional dessa implantação da série 7.0para uma implantação da série 6.0.
Política de downgrade
Downgrades binários não são permitidos para o MongoDB Community Edition.
Não é possível desatualizar fCV de seus sistemas para ou de uma versão Rapid Release do MongoDB.
Se você atualizar ou desatualizar o fCV do seu sistema, não poderá desatualizar sua versão binária do sistema Enterprise sem ajuda do suporte.