Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Notas de versão para MongoDB 9.0

Problemas corrigidos:

Problemas corrigidos:

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:

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.

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.

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.

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.

MongoDB 9.0 adiciona as seguintes métricasserverStatus:

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.

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.

MongoDB 9.0 adiciona os seguintes tipos de inconsistência checkMetadataConsistency:

MongoDB 9.0 remove o tipo de inconsistência ShardCatalogCacheCollectionMetadataMismatch.

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.

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.

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.

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.

O MongoDB 9.0 introduz os seguintes métodosmongosh:

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.

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.

A partir do MongoDB 9.0, você pode renomear coleções de séries temporais com renameCollection.

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

metrics.cursor

Um documento que contém métricas relevantes para o cursor e o protocolo de lote

metrics.queryExec

Um documento que contém métricas relevantes para a execução da query

metrics.queryPlanner

Um documento que contém métricas relevantes para o planejador de query

metrics.writes

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.

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.

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.

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.

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.

Para obter detalhes, consulte Botões de query.

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.

Para obter detalhes, consulte Campos de comando.

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.

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.

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.

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.

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.

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.

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.

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 falhas de extração de chaves geográficas agora lançam os códigos de erro nomeados 510 (GeoKeyExtractionFailed) e 511 (GeoKeyExtractionFailedTimeseries), que substituem os códigos de afirmação sem nome anteriores.

  • As inserções geográficas e as construções de índices com falha agora incluem um documento writeErrors[].errInfo que contém os campos failingPath, underlyingCode, underlyingReason e failingElement. Os nomes de campo existentes permanecem inalterados, mas a string do motivo do erro agora está limitada a 256 caracteres.

  • A saída validate.errors para falhas na extração de chaves geográficas agora emite uma mensagem limitada e autônoma e grava os detalhes completos por documento no registro mongod. 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ída validate. Os detalhes completos por documento são registrados somente quando a supressão do registro está desativada. Para detalhes,consulte validate.

A partir do MongoDB 9.0, serverStatus relata as seguintes métricas de cursor de change stream em cada processomongod e mongos:

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 .

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.