Notas de versão para MongoDB 7.0 (versão estável)
Nesta página
Esta página descreve as alterações e as novas funcionalidades introduzidas no MongoDB 7.0.
O MongoDB 7.0 é uma versão principal, o que significa que ela é compatível tanto com o MongoDB Atlas quanto com implantações no local. O MongoDB 7.0 inclui mudanças introduzidas nos MongoDB Rapid Releases 6.1, 6.2 e 6.3. Para ver as alterações introduzidas nessas Rapid Releases, consulte Alterações introduzidas em 6.X-Series Rapid Releases.
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 |
---|---|
7.0.0 - 7.0.2 | |
7.0.0 - 7.0.2 (Coleções de séries temporais fragmentadas por objetos embarcados metaField) | |
7.0.0 - 7.0.5 | |
7.0.0 - 7.0.6 | |
7.0.0 - 7.0.6 | |
7.0.0 - 7.0.12 |
Lançamentos de patches
7.0.14 - Ago 26 de 2024
Problemas corrigidos:
SERVER-82814 Permite operadores de comparação expr internos ao determinar limites de verificação de coleção clusterizada
SERVIDOR-85892 $merge com pipeline após $documents retornar erro
SERVIDOR-91195 Forneça uma solução backportable genérica para não perder as opções de coleção de séries temporais de nível superior
SERVER-91625 Habilite planos indexados para expressões com $$NOW, $$CLUSTER_TIME e $$USER_ROLES
WT-12643 Corrige a lógica de movimentação do Servidor de Eviction para que ele seja capaz de descartar todas as páginas
7.0.12 - 28 junho, 2024
Importante
A correção para CSFLE e a autoconsulta do Queryable Encryption podem enviar valores em subpipelines como texto simples em vez de texto cifrado
Devido ao CVE-2024-8013, no MongoDB 7.0 anterior a 7.0.12, um bug na análise de query de determinados subpipelines auto-referenciais $lookup
complexos pode resultar em valores literais em expressões para criptografia campos sendo enviados para o servidor malformado.
Caso isso ocorra, nenhum documento será devolvido ou escrito. Esse problema afeta o binário mongocryptd
e a biblioteca compartilhada mongo_crypt_v1
nas seguintes versões do MongoDB Server:
7.3.0 - 7.3.3
7.0.0 - 7.0.11
6.0.0 - 6.0.16
5.0.0 - 5.0.28
Pontuação CVSS: 2.2
CWE: CWE-319: transmissão de texto não criptografado de informações confidenciais
Problemas corrigidos:
SERVIDOR-96254 A autopesquisa de CSFLE e Queryable Encryption pode falhar ao criptografar valores em subpipelines
SERVER-64574 Atualizar o MozJS/Spidermonkey para o ESR mais recente
SERVIDOR-86674 A recuperação primária pode acreditar que foi recuperada quando não é
SERVER-90485 $sort não funciona como esperado quando usado em conjunto com includesArrayIndex
SERVER-91362 Desempenho: não copia o objeto "scope" JS se existir um JsExecution em cache
WT-12736 Marcar a página como limpa após reinstanciar a página com as atualizações preparadas
7.0.11 - 23 maio de 2024
Problemas corrigidos:
SERVER-85279 Não executa o coletor de estatísticas da coleção FTDC em árbitros
SERVER-89495 Desativa os parâmetros de teste mesmo quando nenhum setParameters for especificado
SERVER-89625 Lida com directoryPerDb e wiredTigerDirectoryForIndexes corretamente ao relatar namespaces e UUIDs durante um backup
SERVER-90288 Os operador de query bitwise devem interpretar o byte endereçável mais baixo em BinData como o byte menos significativo
WT-12609 Melhora a limpeza do checkpoint e a lógica de remoção de páginas
7.0.9 - abr 26 de 2024
Problemas corrigidos:
SERVIDOR-79637 Resultados de query incorretos em $lookup com coleção estrangeira TS usando um predicado correlacionado
SERVER-82349 O Mongo 7 trava ao excluir ou descartar o índice ApplyOps sem um UUID de coleção
SERVER-86407 A validação não produz resultados completos quando deveria
SERVER-88173 As comparações de bits do BinData fornecem resultados errados em muitos casos
WT-10807 Ignora páginas excluídas na memória como parte da caminhada pela árvore
7.0.8 - abr 3 de 2024
Problemas corrigidos:
SERVER-78556 Retornar o padrão de internalInsertMaxBatchSize para 64
SERVIDOR-79575 Corrigir contagem de nós
SERVIDOR-86583 A leitura de instantâneo não transacional na coleção não fragmentada pode ser executada com metadados de fragmentação incompatíveis
SERVIDOR-87666 A forma de query para $documents é única em cada execução
SERVER-88360 Remove a afirmação do tripwire "Catálogo de fragmentação e coleção de catálogo local uuid não correspondem"
7.0.7 - Mar 18, 2024
Problemas corrigidos:
SERVER-84368 Ocorre uma falha de CreateIndex com StaleConfig se executado em um mongos obsoleto em uma coleção fragmentada não vazia
SERVER-84628 Aviso de inicialização no mongos para preocupação de leitura/gravação
SERVER-85459 [v7.0] O parâmetro bucketRoundingSeconds é aceito pelos nós no fCV 6.0, binário 7.0
SERVER-85869 A busca exaustiva no fragmento de configuração pode retornar dados obsoletos
SERVER-87061 Transações fragmentadas de vários documentos podem observar efeitos parciais da operação simultânea de refragmentação
7.0.6 - 28 de fevereiro de 2024
Importante
A correção para o MongoDB Server pode permitir uma conexão não confiável bem-sucedida
Devido ao CVE-2024-1351, no MongoDB 7.0 antes de 7.0.6, sob certas configurações de --tlsCAFile
e CAFile
, MongoDB Server pode ignorar a validação do certificado de par, o que pode resultar no sucesso de conexões não confiáveis.
Isso pode efetivamente reduzir as garantias de segurança fornecidas pelo TLS e conexões abertas que deveriam ter sido fechadas devido a falha na validação do certificado. Esse problema afeta as seguintes versões do MongoDB Server:
7.0.0 - 7.0.5
6.0.0 - 6.0.13
5.0.0 - 5.0.24
4.4.0 - 4.4.28
Pontuação CVSS: 8.8
CWE: CWE-295: validação de certificado inadequada
Problemas corrigidos:
SERVER-72703 fazer o downgrade do bloqueio do bd do $out para MODE_IX
SERVER-82353 transações multidocumento podem perder documentos quando o movePrimary é executado simultaneamente
SERVER-84338 Queries $or de nível superior podem gerar uma entrada de cache de plano SBE inválida que retorna resultados incorretos
SERVIDOR-84723 Transações multidocumentos fragmentadas podem observar efeitos parciais das operações simultâneas de DDL
WT-11062 liberação segura do endereço de referência para permitir acesso concomitante
7.0.5 - Jan 5, 2024
Problemas corrigidos:
SERVER-33494 O WT SizeStorer nunca exclui entradas antigas
SERVIDOR- O80363 WriteConcern padrão do servidor não é respeitado quando o wtimeout é definido
SERVER-83091 $or query pode disparar um loop infinito durante a enumeração do plano
SERVER-83830 Na versão Enterprise, a criação de uma coleção em um conjunto de réplicas com a opção storageEngine.inMemory quebra os secundários
WT-7929 investigar uma solução para evitar paralisações do FTDC durante o checkpoint
7.0.4 - 27 de novembro de 2023
Problemas corrigidos:
SERVER-67962 Aplicar config.image_collection exclui necessidades de melhor controle de concorrência
SERVER-69244 $merge falha quando a preocupação de leitura padrão da sessão foi definida como "majority"
SERVIDOR-79975 [Clássico] Otimizar chaves de grupo grande
SERVIDOR-81133 Acelere a lógica para manter o cache da tabela de roteamento
SERVIDOR- O82446 caso de uso $densify pode resultar em documentos fora do alcance
7.0.3 - 9 de novembro de 2023
Problemas corrigidos:
SERVER-77506 as transação multidocumento fragmentadas podem não corresponder aos dados e à ShardVersion
SERVER-79088 Melhora o desempenho do multiplanejador SBE para queries que retornam zero resultados
SERVER-81106 o fragmento do destinatário não espera a persistência local da versão da coleção para iniciar a fase de clonagem
SERVIDOR-81966 Evite a modificação de instâncias anteriores do ChunkMap durante a atualização
WT-11564 corrigir o RTS para ler o valor da transação mais recente somente quando ele existir no checkpoint
7.0.2 - 29 de setembro de 2023
Problemas corrigidos:
SERVER-74954 resultado incorreto quando $or contido reescreve a condição extra $elemMatch
SERVIDOR-79771 Torna a operação de refragmentação resiliente a NetworkInterfaceExceededTimeLimit
SERVIDOR-79912 CheckReplDBHash relata falha com coleções system.buckets devido a BSON inválido
SERVER-79982 Os gravadores de catálogos em lote podem ser executados simultaneamente com HistoricalCatalogIdTracker::cleanup() e levar a resultados incorretos de localização PIT
SERVIDOR-80488 Evita percorrer uma tabela de roteamento na política de divisão da parte do balanceador
7.0.1 - 5 de setembro de 2023
Problemas corrigidos:
SERVER-71627 A atualização das informações de rota de coleta em cache bloqueia gravemente todas as solicitações de cliente para um cluster com 1 milhões de blocos
SERVER-77183 $project seguido de $group às vezes apresenta resultados incorretos
SERVER-80256 QueryPlannerAnalysis::explodeForSort não deve assumir que as varreduras de índice produzem resultados desarticulados
7.0.0 - Aug 15, 2023
O restante desta página descreve as alterações e as novas funcionalidades introduzidas no MongoDB 7.0.
Gerenciamento do índice do Atlas Search
A partir do MongoDB 7.0, você pode gerenciar os índices da Atlas Search com métodos do mongosh
e comandos de banco de dados. Os comandos de índice da Atlas Search só estão disponíveis para implantações hospedadas no MongoDB Atlas e exigem uma camada do cluster do Atlas de pelo menos M10.
Para gerenciar índices do Atlas Search, utilize os seguintes comandos:
Métodos de mongosh
Nome | Descrição |
---|---|
Criar um índice Atlas Search numa colecção especificada. | |
Exclui um índice de Pesquisa do Atlas existente. | |
Retorna informações sobre Atlas Search indexes em uma coleção especificada. | |
Atualiza um índice existente do Atlas Search. |
Comandos de banco de dados
Nome | Descrição |
---|---|
Cria um ou mais índices de Pesquisa do Atlas em uma coleção especificada. | |
Exclui um índice de Pesquisa do Atlas existente. | |
Atualiza um índice existente do Atlas Search. |
Estágios de aggregation
Nome | Descrição |
---|---|
Lista queries de amostra para todas as collections ou para uma collection
específica. | |
Retorna informações sobre Atlas Search indexes em uma coleção especificada. |
Alterações gerais
Campos de tempo de atualização de cache
A partir do MongoDB 7.0, as mensagens de registro para queries lentas incluem um novo campo de tempo de atualização do cache.
Transações simultâneas do mecanismo de armazenamento (leitura e gravação de tickets)
A partir da versão 7.0, O MongoDB usa um algoritmo padrão para ajustar dinamicamente o número máximo de transações simultâneas do mecanismo de armazenamento (incluindo tickets de leitura e gravação) para otimizar o rendimento do banco de dados durante a sobrecarga.
A tabela a seguir resume como identificar cenários de sobrecarga para o MongoDB 7.0 e versões anteriores:
Versão | Diagnosticando cenários de sobrecarga |
---|---|
7.0 | Um grande número de operações em fila que persistem por um período prolongado provavelmente indica uma sobrecarga. A disponibilidade simultânea de 0 na transação do mecanismo de armazenamento (ticket) por um período prolongado não indica uma sobrecarga. |
6.0 e anterior | Um grande número de operações em fila que persistem por um período prolongado provavelmente indica uma sobrecarga. Uma disponibilidade de transação de mecanismo de armazenamento simultâneo (ticket) de 0 por um período prolongado provavelmente indica uma sobrecarga. |
Para saber mais, consulte:
currentOp
Métricas
Iniciando no MongoDB 7.0, o comando currentOp
e o método db.currentOp()
incluem estes novos campos:
$currentOp
Métricas (agregação)
A partir do MongoDB 7.0, o estágio de agregação currentOp inclui estes novos campos:
Índices compostos de curingas
A partir do MongoDB 7.0, você pode criar índices compostos de curingas. Um índice curinga composto tem um termo curinga e um ou mais termos de índice adicionais.
Use índices curinga compostos para dar suporte a queries sobre padrões conhecidos e para limitar o número total de índices em uma collection.
Grandes eventos de fluxo de mudanças
A partir do MongoDB 7.0, se você tiver eventos de change stream maiores que 16 MB, poderá usar o novo estágio $changeStreamSplitLargeEvent
para dividir os eventos em fragmentos menores.
As novas métricas a seguir relatam informações sobre grandes eventos de change stream:
Alteração de saída doserverStatus
serverStatus
inclui os seguintes novos campos em sua saída:
Mecanismo de execução de consulta baseado em slot
A partir do MongoDB 7.0, o mecanismo de execução de query baseado em slot melhora o desempenho para uma ampla variedade de querys de localização e agregação.
Mensagens de log de query lentas agora incluem um campo queryFramework
que indica qual mecanismo de query concluiu a query:
queryFramework: "classic"
indica que o mecanismo clássico concluiu a query.queryFramework: "sbe"
indica que o mecanismo de execução de query baseado em slot concluiu a query.
Variável do sistema de funções do usuário
A partir do MongoDB 7.0, você pode utilizar a nova variável do sistema USER_ROLES
para retornar os roles do usuário atual.
Para casos de uso que incluem USER_ROLES
, consulte os exemplos localizar, agregação, visualizar, updateOne, updateMany e findAndModify.
Novas estatísticas de fragmentação para migrações de chunk
Disponível a partir de MongoDB 7.0 (e 6.3.2, 6.0.6 e 5.0.18).
O MongoDB inclui as seguintes novas estatísticas de fragmentação para migrações de chunks:
Nova mensagem de registro de query lenta
A partir do MongoDB 7.0 (e 6.0.13, 5.0.24), o totalOplogSlotDurationMicros
na mensagem de registro de query lenta mostra o tempo entre uma operação de gravação que obtém um carimbo de data/hora de confirmação para confirmar as gravações do mecanismo de armazenamento e a confirmação efetiva. mongod
suporta gravações paralelas. No entanto, ele confirma operações de gravação com registros de data e hora de confirmação em qualquer ordem.
Para saber mais, consulte Registrar operações lentas.
Novos parâmetros
Parâmetros relacionados ao analyzeShardKey
O MongoDB 7.0 adiciona os seguintes parâmetros relacionados ao comando analyzeShardKey
:
autoMergerIntervalSecs Parameter
O MongoDB 7.0 adiciona o parâmetro autoMergerIntervalSecs
que, quando o AutoMerger está habilitado, especifica o período de tempo entre as rodadas de automerging, em segundos. autoMergerIntervalSecs
só pode ser definido em servidores de configuração de clusters fragmentados.
autoMergerThrottlingMS Parameter
O MongoDB 7.0 adiciona o autoMergerThrottlingMS
que, quando o AutoMerger está habilitado, especifica o tempo mínimo entre as mesclagens iniciadas pelo AutoMerger na mesma coleção, em milissegundos. autoMergerThrottlingMS
só pode ser definido em servidores de configuração de clusters fragmentados.
balancerMigrationsThrottlingMs Parameter
O MongoDB 7.0 adiciona o parâmetro balancerMigrationsThrottlingMs
que permite limitar a taxa de balanceamento.
Parâmetro enableDetailedConnectionHealthMetricLogLines
O MongoDB 7.0 adiciona o parâmetro enableDetailedConnectionHealthMetricLogLines
que permite especificar se um conjunto de mensagens de log relacionadas às métricas de integridade da conexão do cluster aparece ou não no log.
oidcIdentityProviders
Parâmetro
O MongoDB 7.0 adiciona o parâmetro oidcIdentityProviders
que permite a você especificar configurações do provedor de identidade (IDP) ao utilizar a autenticação do OpenID Connect.
Parâmetros relacionados a configureQueryAnalysis
O MongoDB 7.0 adiciona os seguintes parâmetros relacionados ao comando configureQueryAnalysis
:
Segurança
Disponibilidade gerado de queryable encryption
A partir do MongoDB 7.0, a Queryable Encryption com queries de igualdade está geralmente disponível (GA). Melhorias no GA o tornam incompatível com o Queryable Encryption Public Preview, que não deve ser usado agora que a funcionalidade está GA. Para obter detalhes, consulte Alterações de compatibilidade no MongoDB 7.0.
Compatível com KMIP 1.0 e 1.1
MongoDB 7.0 (e 6.0.6) adiciona a configuração useLegacyProtocol
. Essa configuração permite que servidores MongoDB se conectem a servidores KMIP que usam protocolo KMIP versão 1.0 ou 1.1.
Suporte a OpenSSL e FIPS
A partir do MongoDB 7.0 e 6.0.7, O MongoDB suporta OpenSSL 3,0 e o provedor OpenSSL FIPS com estes sistemas operacionais:
Red Hat Enterprise Linux 9
Amazon Linux 2023
Ubuntu Linux 22.04
Para saber mais, consulte TLS/SSL (criptografia de transporte).
OpenID connect
A partir da versão 7.0, o MongoDB Enterprise oferece suporte à autenticação OpenID Connect. OpenID Connect é uma camada de autenticação construída sobre OAuth2. Você pode usar o OpenID Connect para configurar o logon único entre seu banco de dados MongoDB e um provedor de identidade de terceiros.
Agregação
Novas operadoras:
Nome | Descrição |
---|---|
Retorna uma array de valores escalares que correspondem aos valores percentuais especificados. Este operador pode ser usado como um accumulator e como uma expressão de aggregation. |
Especificador de Nome do Mês para $dateToString
O MongoDB 7.0 adiciona os seguintes especificadores de formato para utilizar com o operador $dateToString
:
Especificadores | Descrição | Valores possíveis |
---|---|---|
%b | Nome do mês abreviado (3 letras) | jan -dec |
%B | Nome do mês inteiro | january -december |
Séries temporais
O MongoDB 7.0 remove a maior parte das limitações de séries temporais dessas operações que são baseadas no comando delete
:
Fragmentação
Diagnóstico de fragmentação de metadados
A partir do MongoDB 7.0, o comando checkMetadataConsistency
está disponível para verificar se há inconsistências nos metadados de fragmentação nos níveis de cluster, banco de dados e coleção. Essas inconsistências podem se originar em casos como:
Atualizações nos casos em que o cluster encontrou um erro durante a execução de versões anteriores do MongoDB
Intervenções manuais que corrompem o catálogo do cluster
Os seguintes métodos auxiliares estão agora disponíveis por meio de mongosh
:
Para obter mais informações sobre as inconsistências que o comando verifica, consulte Tipos de inconsistência.
comando EmergeAllChunksOnShard
A partir do MongoDB 7.0, o comando mergeAllChunksOnShard
localiza e mescla todos os chunks mescláveis que um shard possui para uma determinada collection.
A fusão automática
A partir do MongoDB 7.0, o AutoMerger pode mesclar automaticamente partes que atendam aos requisitos de mesclabilidade. O AutoMerger está habilitado por padrão.
A partir do MongoDB 7.0, você pode usar os seguintes métodos para controlar o comportamento do AutoMerger:
enableAutoMerger Parameter for configureCollectionBalancing
Iniciando no MongoDB 7.0, o comando configureCollectionBalancing
aceita o parâmetro enableAutoMerger
. Use enableAutoMerger
para definir se o AutoMerger leva ou não em consideração essa coleção.
Parâmetro RangeDeleterHighPriority para despriorizar exclusões de intervalos
A partir do MongoDB 7.0, você pode priorizar ou despriorizar a limpeza de documentos órfãos em relação às operações do usuário usando o parâmetro rangeDeleterHighPriority
.
Operações bloqueadas por métricas de atualização removidas
O MongoDB 7.0 remove o documento operationsBlockedByRefresh
que contém estatísticas sobre operações bloqueadas pela atividade de atualização do cache do catálogo porque os contadores operationsBlockedByRefresh
aumentaram em mongos
para cada operação que usou informações de roteamento de coleta mesmo que a operação não tenha sido bloqueada por uma atividade de atualização de catálogo.
Comando analyzeShardKey e método db.collection.analyzeShardKey() .
O MongoDB 7.0 adiciona o comando analyzeShardKey
e o método db.collection.analyzeShardKey()
, que permitem calcular métricas para avaliar uma chave de estilhaço.
Comando ConfigureQueryAnalyzer e método db.collection.configureQueryAnalyzer() .
O MongoDB 7.0 adiciona o comando configureQueryAnalyzer
, que permite a você configurar a amostragem de query para uma collection. O MongoDB 7.0 também adiciona o db.collection.configureQueryAnalyzer()
, que envolve o comando configureQueryAnalyzer
. Exemplos de queries fornecem informações para analyzeShardKey
para calcular métricas sobre a distribuição de leitura e escrita de uma chave de shard.
Alterações introduzidas nas versões rápidas da série 6.X
O MongoDB 7.0 inclui alterações e funcionalidades das seguintes versões Rapid Release:
Suporte a plataformas
Plataformas removidas
O MongoDB 7.0 remove o suporte para RHEL 7 / CentOS 7 / Oracle 7 nas arquiteturas PPC64LE e s390x.
Procedimentos de atualização
Importante
Versão de compatibilidade de recursos
Para atualizar para o MongoDB 7.0 a partir de uma implantação 6.0, a implantação 6.0 deve ter featureCompatibilityVersion
configurado como 6.0
. Para verificar a versão:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
Para atualizar para o MongoDB 7.0, consulte as instruções de atualização específicas para seu MongoDB deployment:
Caso você precise de orientação ao atualizar para a versão 7.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.
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 desatualizar um sistema série 7.0 para um sistema série 6.0. No entanto, não há suporte para desatualização adicional desse sistema série 6.0 para um sistema série 5.0.
Alterações na política de downgrade
Começando no MongoDB 7.0:
Downgrades de binários não são mais suportados para MongoDB Community Edition.
Não é possível fazer downgrade do fCV de sua implantação para uma versão de lançamento rápido do MongoDB.
O comando
setFeatureCompatibilityVersion
exige um parâmetro adicional,confirm
, que deve ser definido paratrue
para atualizar ou reduzir o fCV.Se você atualizar ou desatualizar fCV de seu sistema, não poderá desatualizar sua versão binária do sistema Enterprise sem ajuda do suporte.
Funcionalidades incompatíveis com versões anteriores
O MongoDB 7.0 inclui funcionalidades que não são compatíveis com versões anteriores. A desatualização do 7.0 para uma versão anterior exige que você remova os dados que utilizam essas funcionalidades.
Para obter mais informações, consulte Funcionalidades incompatíveis com versões anteriores.
Download
Para baixar o MongoDB 7.0, acesse a Central de downloads do MongoDB.
Relatar um problema
Para relatar um problema, consulte o repositório MongoDB no GitHub para obter instruções sobre como arquivar um ticket do JIRA para o servidor MongoDB ou um dos projetos relacionados.