Lançamentos de patches
9.0.3 - Em breve
Problemas corrigidos:
SERVIDOR-127745 Refragmentando o impasse do serviço do destinatário na redução rápida e na intensificação
SERVER-131625 Adiciona suporte Ubuntu 26.04 para o servidor.
SERVER-132638 contagem com limite 0 falha em uma visualização, mas funciona em uma collection
SERVER-133518 StepUp trava quando uma operação de bloco obsoleta na memória bloqueia a recuperação de um destinatário persistente
SERVER-133988 Impasse entre a inicialização do refragmentação, o commit da migração de chunks e o setFCV
9.0.2 - Set 28, 2026
Problemas corrigidos:
SERVIDOR-134970 Desativar featureFlagChangeStreamOptimizedUpdateLookup
SERVER-135099 Desativar sinalizador IFR featureFlagChangeStreamReaderV2
SERVIDOR-134533 Iniciar a drenagem de shards durante movePrimary pode causar inconsistências de metadados
SERVIDOR-134808 UTF inválido-8 Os nomes de banco de dados não são bem tratados
9.0.1 - Set 28, 2026
Esta versão contém importantes melhorias de segurança e confiabilidade.
Importante
MongoDB 9.0.1 contém uma correção para:
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:
SERVER-134063 Fragmentar constantes do validador de coleção durante a análise
9.0.0 - Set 28, 2026
Alterações gerais
Métricas de pré-imagem do change stream
A partir do MongoDB 9.0, as métricas changeStreamPreImages.purgingJob.docsDeleted e changeStreamPreImages.purgingJob.bytesDeleted serverStatus podem relatar estimativas em vez de valores exatos. Essas estimativas ocorrem quando as informações de tamanho e contagem não estão disponíveis para a collection config.system.preimages. Para obter detalhes, consulte changeStreamPreImages.
O MongoDB 9.0 também adiciona um novo documento serverStatus do changeStreamPreImages.markerCreation. Este documento reporta métricas relacionadas aos passos de amostragem de pré-imagem que constroem as informações de truncamento inicial usadas para remover pré-imagens. Para obter detalhes, consulte changeStreamPreImages.
Limite de transações multidocumentos
A partir do MongoDB 9.0, o servidor limita o número de transações de vários documentos abertas simultaneamente para clientes externos. Quando o número de transações abertas atinge o limite definido pelo parâmetro maxConcurrentMultiDocumentTransactions (padrão 10000), o servidor rejeita novas transações de vários documentos e retorna um erro TooManyOpenTransactions. Para saber mais, consulte maxConcurrentMultiDocumentTransactions.
Limite de memória por operação
A partir do MongoDB 9.0, o MongoDB limita a quantidade total de memória que uma única operação de query pode usar. Por padrão, o limite é 1 gigabyte ou 20% da memória disponível para o processo do servidor , o que for maior. As operações que excedem o limite falham com ExceededMemoryLimit ou QueryExceededMemoryLimitNoDiskUseAllowed. Em versões anteriores, uma operação poderia usar uma quantidade ilimitada de memória.
O limite de memória de megabyte por estágio de 100 e o comportamento de derramamento em disco de estágios individuais permanecem inalterados. Para saber mais, consulte Limite de memória por operação.
Javascript no lado do servidor
A partir do MongoDB 9.0, as funções JavaScript do lado do servidor ($accumulator,$function e $where) não são mais obsoletas. MongoDB 9.0 reativa essas funções usando um mecanismo JavaScript baseado em WebAssembling (WASM), que melhora a segurança por meio de sandbox e isolamento mais fortes do que as versões anteriores. Estas funções foram anteriormente preteridas no MongoDB 8.0.
O JavaScript do lado do servidor não está disponível na arquitetura ppc64le. Para saber mais, consulte JavaScript do lado do servidor.
Status do servidor
MongoDB 9.0 adiciona as seguintes métricasserverStatus:
Métricas de status do servidor renomeado
O MongoDB 9.0 renomeia o documentoshardingStatistics.databaseVersionUpdateCounters , introduzido no MongoDB 8.3, para shardingStatistics.databaseShardingMetadataStatistics. O MongoDB 9.0 também substitui os campos do documento renomeado por um novo conjunto de métricas.
MongoDB 9.0 renomeia a métrica metrics.changeStreams.showExpandedEvents para metrics.changeStreams.option.showExpandedEvents. Se você monitorar a métrica por nome, atualize seu monitoramento para usar o novo nome.
Novos parâmetros
sessionCatalogPartitions Parameter
MongoDB 9.0.1 adiciona o parâmetro sessionCatalogPartitions, que especifica o número de partições no catálogo de sessão. O particionamento do catálogo de sessões reduz a contenção de bloqueio quando há um grande número de sessões.
Fragmentação
checkMetadataConsistency Tipos de inconsistência
MongoDB 9.0 adiciona os seguintes tipos de inconsistência checkMetadataConsistency:
MongoDB 9.0 remove o tipo de inconsistência ShardCatalogCacheCollectionMetadataMismatch.
checkMetadataConsistency Limite de verificação de chunk
MongoDB 9.0 adiciona uma opção performStrictChunkChecksIfBelowThreshold ao comando checkMetadataConsistency. Use essa opção para definir um limite de contagem de chunks para a comparação de chunks de um shard. Abaixo do limite, o comando executa uma comparação completa. Nesse ou acima dele, o comando executa uma comparação mais leve, somente de contagem. Para obter detalhes, consulte Limite de verificação de chunk.
Namespace do cursor em respostas de comando
A partir do MongoDB 9.0, quando você executa um comando find, aggregate ou listIndexes em uma coleção de séries temporais, o campo cursor.ns na resposta retorna o namespace voltado para o usuário que você originalmente direcionado. Em versões anteriores, o servidor pode retornar o namespace interno.
Validação de JSON
O MongoDB 9.0 substitui a opção de configuração net.wireObjectCheck e seus argumentos CLI --objcheck e --noobjcheckand correspondentes. Começando em 9.0, o MongoDB valida todos os objetos BSON que o servidor ingere por padrão. Se o servidor receber dados BSON inválidos, o MongoDB retornará um erro.
Validação do documento
O MongoDB 9.0 introduz um novo nível de validação de esquema de constraint. Com o nível de validação constraint, o MongoDB aplica as regras de validação a todas as inserções e atualizações de documento e garante que cada documento na coleção satisfaça as regras. Para obter detalhes, consulte Especificar validação de restrição.
Métodos de compartilhamento
O MongoDB 9.0 introduz os seguintes métodosmongosh:
Séries temporais
Observação
Quando você atualiza para 9.0, clusters com mais de 5,000 coleções de séries temporais em um único banco de dados podem levar mais tempo para atualizar e enfrentar picos adicionais de latência de gravação. Para reduzir esse impacto, descarte ou exclua coleções de séries temporais desnecessárias.
Armazenamento de dados
A partir de 9.0, o MongoDB armazena coleções de séries temporais como um único namespace que contém dados de séries temporais compactados em buckets. As coleções de séries temporais não são mais visualizações não materializadas graváveis.
Renomear coleção
A partir do MongoDB 9.0, você pode renomear coleções de séries temporais com renameCollection.
Agregação
$queryStats Output
O MongoDB 9.0 atualiza a saída $queryStats para simplificar a organização de métricas. Esta atualização inclui os seguintes novos campos de saída:
Campo | Descrição |
|---|---|
| Um documento que contém métricas relevantes para o cursor e o protocolo de lote |
| Um documento que contém métricas relevantes para a execução da query |
| Um documento que contém métricas relevantes para o planejador de query |
| Um documento que contém métricas relevantes para a operação escreve |
Para obter mais informações sobre a nova estrutura de saída, consulte Saída $queryStats.
Suporte de comando
A partir de 9.0, o MongoDB coleta e relata estatísticas de query para comandos update, insert e delete. Para obter detalhes, consulte Atualizar forma de query de comando, inserir forma de query de comandoe excluir forma de query de comando.
Estatísticas de query habilitadas por padrão
A partir do MongoDB 9.0, $queryStats coleta estatísticas por padrão para operações de leitura e gravação. O MongoDB coleta estatísticas para uma amostra de operações em vez de para cada operação. As amostras do MongoDB leem operações na taxa definida pelo parâmetro internalQueryStatsSampleRate e gravam operações na taxa definida pelo parâmetro internalQueryStatsWriteCmdSampleRate. Ambos os parâmetros têm como padrão 0.01, que amostra 1% das operações.
Como $queryStats relata apenas as operações que o MongoDB testa, sua saída representa um subconjunto das operações executadas em relação ao seu sistema.
Linguagem de query
Configurações de query como campo de comando
Começando no MongoDB 9.0, você pode passar um documento querySettings diretamente para os seguintes comandos:
Essas configurações se aplicam apenas a essa execução do comando. O MongoDB não armazena as configurações no cluster e não as aplica a outras queries com a mesma forma de query.
Em versões anteriores, você só pode definir configurações de query com o comando setQuerySettings, que armazena as configurações no cluster e as aplica a cada query com a forma de query correspondente.
Se uma forma de query tiver armazenado configurações de query de cluster, o MongoDB combinará essas configurações com as configurações que você passar no comando. Se ambos especificarem o mesmo campo, a configuração do cluster armazenado terá precedência.
Knobs de query
Novidades na versão 9.0.
A partir do MongoDB 9.0, você pode substituir os parâmetros internos do servidor para uma única forma de query pela configuração de query queryKnobs. A configuração queryKnobs requer a versão de compatibilidade do recurso (FCV) 9.0 ou posterior.
Por forma maxTimeMS
Novidades na versão 9.0.
A partir do MongoDB 9.0, você pode definir um limite de tempo maxTimeMS para uma única forma de query com o comando setQuerySettings. A configuração de consulta maxTimeMS requer versão de compatibilidade do recurso (FCV) 9.0 ou posterior.
Comparações de nulos em caminhos pontilhados
A partir do MongoDB 9.0, um caminho pontilhado que não resulta em um valor não nulo, é avaliado como null. O novo comportamento se aplica quando um campo no caminho contém uma array vazia, uma array de valores escalares ou uma array que contém uma array agrupada. As comparações com null que usam os operadores $eq, $ne, $in, $nin, $gte e $lte refletem a nova semântica. A correspondência de igualdade no estágio $lookup também reflete a nova semântica. As queries que comparam um caminho pontilhado com null podem retornar resultados diferentes após a atualização. Para obter detalhes, consulte Alterações de compatibilidade no MongoDB 9.0.
Segurança
Disponibilidade geral da query de prefixo, sufixo e substring do Queryable Encryption
MongoDB 9.0 marca o GA de queries de prefixo, sufixo e substring em campos de string criptografados em coleções habilitadas para Queryable Encryption . Para obter detalhes, consulte habilitar queries de substring e Expressões de agregação suportadas.
Para usar queries de prefixo, sufixo ou substring com mongosh, você deve baixar separadamente a Biblioteca Compartilhada de Criptografia Automática 9.0 ou posterior, então especifique o caminho da biblioteca para mongosh usando a opção --cryptSharedLibPath.
useInternalAuthzForX509 Parâmetro
MongoDB 9.0 adiciona o parâmetro useInternalAuthzForX509. Quando definido para true, os clientes que se autenticam usando MONGODB-X509 usam a autorização interna, mesmo quando a autorização LDAP está configurada. Para detalhes, consulte useInternalAuthzForX509.
usersInfo authenticatedMechanism Campo
MongoDB 9.0 adiciona o campo authenticatedMechanism ao comando usersInfo. Esse campo de string opcional especifica um mecanismo de autenticação para determinar qual backend de autorização usersInfo faz query ao procurar informações de autorização do usuário. Para detalhes, consulte usersInfo.
mongocryptd Obsoleto(a)
A partir do MongoDB 9.0, mongocryptd está obsoleto. Em vez disso, use a Biblioteca compartilhada de criptografia automática. A Biblioteca compartilhada de criptografia automática substitui mongocryptd e não exige que você inicie um processo separado. Para obter detalhes, consulte Instalar e configurar um componente de análise de query CSFLE e Instalar e configurar um componente de análise de query.
Melhorias no registro de auditoria
MongoDB 9.0 adiciona o campo directRemote às mensagens de auditar no esquema mongo e o campo direct_endpoint às mensagens de auditar no esquema OCSF. Esses campos registram o par TCP literal para uma sessão, independentemente de qualquer endereço de cliente que um cabeçalho de protocolo PROXY afirme. Para obter detalhes, consulte Mensagens de auditoria de esquema mongo e Mensagens de auditoria de esquema OCSF.
Replicação
Novas métricas replSetGetStatus para rastreamento de fase
A partir do MongoDB 9.0, as seguintes métricas estão disponíveis ao usar o comando replSetGetStatus durante uma sincronização inicial lógica:
Cada documento em initialSyncAttempts também relata o phase, nodeUptimeSecs e phaseDurations para essa tentativa. Para detalhes, consulte replSetGetStatus.initialSyncStatus.initialSyncAttempts.
Diagnóstico
Diagnóstico aprimorado para documentos não indexáveis
A partir do MongoDB 9.0, as falhas de extração de chaves em índices 2dsphere produzem diagnósticos estruturados que facilitam a identificação de documentos não indexáveis:
As inserções geográficas e as construções de índices com falha agora incluem um documento
writeErrors[].errInfoque contém os camposfailingPath,underlyingCode,underlyingReasonefailingElement. Os nomes de campo existentes permanecem inalterados, mas a string do motivo do erro agora está limitada a 256 caracteres.A saída
validate.errorspara falhas na extração de chaves geográficas agora emite uma mensagem limitada e autônoma e grava os detalhes completos por documento no registromongod. Falhas idênticas no mesmo índice e caminho são deduplicadas em uma única mensagem, portanto, para mapear uma falha de volta para documentos específicos, consulte o registro em vez da saídavalidate. Os detalhes completos por documento são registrados somente quando a supressão do registro está desativada. Para detalhes,consultevalidate.
Métricas de fluxo de alterações
A partir do MongoDB 9.0, serverStatus relata as seguintes métricas de cursor de change stream em cada processomongod e mongos:
metrics.changeStreams.cursor.open.total, o número de cursores de change stream atualmente abertos no processo, incluindo cursores ociosos e fixados.metrics.changeStreams.cursor.open.pinned, o número de cursores de change stream abertos que uma operação está usando ativamente.metrics.changeStreams.cursor.totalOpened, o número cumulativo de cursores de change stream abertos no processo, incluindo cursores que já foram fechados e cursores criados quando um change stream é retomado.metrics.changeStreams.cursor.lifespan, a duração média, em microssegundos, e o número total de cursores de change stream que foram fechados no processo.
O comando currentOp e o estágio $currentOp também informam currentOp.cursor.changeStreams.optime, a posição atual do cursor do change stream no oplog. Para saber mais sobre change streams, consulte Change Streams do MongoDB .
Problemas conhecidos
Esta seção descreve problemas conhecidos no MongoDB 9.0 e seu status de resolução.
Na versão | Emitir | Status |
|---|---|---|
9.0.0, 9.0.1, 9.02 | SERVIDOR-133518: um fragmento pode travar durante a intensificação quando uma operação de chunk que foi interrompida durante uma redução anterior bloqueia a recuperação de um destinatário de migração persistente. Se ocorrer o travamento, o fragmento não poderá se tornar primário, e as gravações e leituras usando a preferência de leitura primária ficarão indisponíveis no fragmento. Os secundários podem continuar servindo leituras. Para recuperar, reinicie ou force o encerramento do nó suspenso para que outro secundário possa se tornar um primário gravável. | Corrigido no MongoDB 9.0.3. |