Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Notas de versão para MongoDB 6.0

Nesta página

  • Lançamentos de patches
  • Agregação
  • Fluxos de alterações
  • Administração de cluster
  • Clustered Collections
  • Índices
  • Instalação
  • Conjuntos de réplicas
  • Segurança
  • Fragmentação
  • Mecanismo de execução de consulta baseado em slot
  • Stable API
  • Coleções de Time Series
  • Melhorias gerais
  • Alterações que afetam a compatibilidade
  • Procedimentos de atualização
  • Consideração de rebaixamento
  • Download
  • Problemas conhecidos
  • Relatar um problema

Esta página descreve as alterações e as novas funcionalidades introduzidas no MongoDB 6.0.

O MongoDB 6.0 é uma versão principal, o que significa que é compatível com os sistemas do MongoDB Atlas e on-premises. O MongoDB 6.0 inclui alterações introduzidas no MongoDB Rapid Releases 5.1, 5.2 e 5.3. Esta página descreve as alterações introduzidas nessas Rapid Releases as e no MongoDB 6.0.

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 o seu sistema depender de recursos impactados por um Advisory crítico, atualize para a versão de patch mais recente disponível.

Emitir
Versões afetadas
SERVIDOR-68511
6.0.0
6.0.0 - 6.0.11 (Coleção de séries temporais fragmentadas por objetos embarcados metaField)
6.0.0 - 6.0.4 (arquiteturas de sistema ARM64 ou POWER)
6.0.0 - 6.0.5 (Backups incrementais no Ops Manager ou clusters do Cloud Manager)

Importante

A correção para o servidor MongoDB pode permitir uma conexão não confiável bem-sucedida

Devido a CVE-2024-1351, no MongoDB 6.0 antes de 6.0.14, sob certas configurações de --tlsCAFile e CAFile, o Servidor MongoDB pode ignorar a validação do certificado de par, o que pode resultar no sucesso de conexões não confiáveis.

Isso pode reduzir efetivamente as garantias de segurança fornecidas pelo TLS e conexões abertas que deveriam ter sido fechadas devido à falha na validação do certificado. Esse problema afeta as seguintes versões do servidor MongoDB:

  • 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 incorreta do certificado

Problemas corrigidos:

Problemas corrigidos:

Problemas corrigidos:

Problemas corrigidos:

Problemas corrigidos:

O resto desta página descreve as alterações e novas funcionalidades introduzidas no MongoDB 6.0.

O MongoDB 6.0 introduz os seguintes estágios de aggregation:

Estágio
Descrição
Cria novos documentos em uma sequência de documentos onde faltam valores em um campo especificado.
Retorna documentos literais de expressões de entrada.

Preenche null e os valores de campo ausentes nos documentos.

Novo na versão 6.0.3: Fornece informações de tamanho e distribuição de dados em collections fragmentadas.

O MongoDB 6.0 introduz os seguintes operadores de aggregation:

Operador
Descrição
Retorna o elemento inferior de um grupo de acordo com a ordem de classificação especificada.
Retorna uma aggregation dos elementos n menos importantes dentro de um grupo, de acordo com a ordem de classificação especificada.
Retorna uma aggregation dos primeiros n elementos dentro de um grupo. Distinto do operador de array $firstN.
Retorna um número especificado de elementos desde o início de uma array. Diferente do accumulator $firstN.
Retorna uma aggregation dos últimos n elementos dentro de um grupo. Distinto do operador de array $lastN.
Retorna um número especificado de elementos do final de uma matriz. Distinto do acumulador $lastN .

Preenche null e campos ausentes em uma janela usando interpolação linear com base nos valores do campo circundante.

Última observação levada adiante. Define valores para null e campos ausentes em uma janela para o último valor não nulo do campo.

Retorna uma aggregation dos n elementos com valor máximo em um grupo. Diferente do operador de array $maxN.
Retorna os maiores valores de n em uma array. Distinto do acumulador $maxN.
Retorna uma aggregation dos n elementos com valor mínimo em um grupo. Distinto do operador de array $minN.
Retorna os menores valores de n em uma array. Distinto do accumulator $minN.
Classifica um array com base em seus elementos.
Retorna o principal elemento de um grupo de acordo com a ordem de classificação especificada. Diferente do comando top.
Retorna uma aggregation dos principais elementos n dentro de um grupo, de acordo com a ordem de classificação especificada.

Retorna o ordinal incrementado de um carimbo de data/hora como long.

Retorna os segundos de um carimbo de data/hora como long.

A partir do MongoDB 5.1, os estágios de aggregation $lookup e $graphLookup suportam collections fragmentadas no parâmetro from.

Nas versões anteriores do MongoDB, $lookup e $graphLookup só permitiam collections from não fragmentadas.

Você não pode usar a etapa $graphLookup dentro de uma transação enquanto segmenta uma collection fragmentada.

A partir do MongoDB 5.1, os change streams são otimizados, proporcionando uma utilização mais eficiente dos recursos e uma execução mais rápida de alguns aggregation pipeline stages.

A partir do MongoDB 6.0, a saída de change streams tem um novo campo wallTime que contém a data e a hora do servidor da operação do banco de dados.

A partir do MongoDB 6.0, você pode usar fluxos de mudança para gerar a versão de um documento antes e depois das alterações (as pré e pós-imagens do documento). Por exemplo, consulte Change Streams com pré e pós-imagens de documentos.

A partir do MongoDB 6.0, os change streams podem mostrar eventos de mudança adicionais para operações DDL, como criar índices e descartar collections.

Para obter mais informações, consulte Eventos expandidos.

A partir do MongoDB 6.0, sempre que possível, os filtros de correspondência são aplicados aos change streams mais cedo do que em versões anteriores. Isso melhora o desempenho. No entanto, quando um filtro for muito restritivo, uma correspondência anterior pode fazer com que uma operação bem-sucedida em versões anteriores falhe na versão 6.0.

A partir do MongoDB 6.0, você pode usar os Parâmetros de Cluster para modificar e recuperar as opções de configuração para todos os nós em um conjunto de réplicas ou cluster fragmentado. Você pode usar setClusterParameter para modificar as opções de todo o cluster e getClusterParameter para recuperar o valor de um parâmetro do cluster.

A partir do MongoDB 6.0, você pode usar ShardingTaskExecutorPoolMinSizeForConfigServers e ShardingTaskExecutorPoolMaxSizeForConfigServers para definir o tamanho mínimo e máximo do pool de conexões TaskExecutor de fragmentação para servidores de configuração.

A partir do MongoDB 6.0, você pode usar changeStreamOptions para controlar a política de retenção de imagens antes e depois do change stream.

A partir do MongoDB 6.0, você pode usar o novo parâmetro internalSessionsReapThreshold para definir o limite de sessão para a exclusão de metadados de sessão interna.

A partir do MongoDB 5.3, o suporte para vários arbiters em um conjunto de réplicas está desabilitado por padrão. Para habilitar o suporte para vários árbitros, inicie cada nó com o parâmetro allowMultipleArbiters.

A partir do MongoDB 5.3, você pode criar collection clusterizada.

As collection clusterizada armazenam documento indexado no mesmo arquivo WiredTiger que a especificação do índice. Armazenar os documento e o índice da collection no mesmo arquivo oferece benefícios de armazenamento e desempenho em comparação com os índices regulares.

Collection clusterizada são criadas com um índice agrupado. O índice agrupado especifica a ordem em que os documento são armazenados.

Para criar uma collection clusterizada, consulte Exemplos.

Para saber mais sobre os benefícios em comparação com uma collection normal, consulte Coleções Clusterizadas.

A partir do MongoDB 5.1, você pode usar o comando de banco de dados collMod para adicionar a opção expireAfterSeconds a um índice não TTL de campo único existente.

Iniciando no MongoDB 6,0, você pode utilizar as opções prepareUnique e unique para o comando collMod para converter um índice padrão existente em um índice único.

A partir do MongoDB 6,0, você pode usar os operadores $in e $or para criar índices parciais. A profundidade máxima do partialFilterExpression também foi ampliada de 2 para 4. Agora você pode usar os operadores $and e $or em níveis não principais.

A partir do MongoDB 5.1, há uma nova política SE Linux para:

  • Servidor MongoDB Enterprise

  • Servidor do MongoDB Community Edition

em execução no Red Hat Linux. A política SELinux deve ser usada com instalações padrão usando pacotes de instalação rpm.

A partir do MongoDB 5.3, o suporte para vários arbiters em um conjunto de réplicas está desabilitado por padrão. Para habilitar o suporte para vários árbitros, inicie cada nó com o parâmetro allowMultipleArbiters.

A partir do MongoDB 5.2, initialSyncMethod determina se a initial sync é uma initial sync lógica ou uma initial sync baseada em cópia de arquivo.

initialSyncMethod está disponível apenas no servidor do MongoDB Enterprise.

A partir do MongoDB 6.0, você pode usar o parâmetro de servidor oplogBatchDelayMillis para especificar um atraso para gravações de lotes de oplog em secundários. A adição de um pequeno atraso no lote de oplog pode reduzir IOPS nos secundários, mas adiciona latência para gravações com write concern "majority".

Para mais informações, consulte oplogBatchDelayMillis.

A partir do MongoDB 6.0 Enterprise, você pode criptografar o registro de auditorias do MongoDB.

Para configurar o registro de auditoria, consulte Registro de auditoria.

A partir do MongoDB 6.0.3, os dados em clusters fragmentados são distribuídos com base no tamanho dos dados em vez do número de blocos. Esteja ciente das seguintes mudanças significativas no comportamento de distribuição de dados do cluster fragmentado:

  • O balanceador distribui intervalos de dados em vez de blocos. A política de balanceamento procura uniformemente a distribuição de dados em vez de distribuir chunks.

  • Os chunks não estão sujeitos à divisão automática. Em vez disso, os chunks são divididos somente quando movidos entre shards.

  • Uma parte agora é chamada de intervalo.

  • moveRange substituiu moveChunk.

A partir do MongoDB 5.2, o tamanho padrão do chunk é de 128 megabytes. Nas versões anteriores do MongoDB, o tamanho padrão do chunk é de 64 megabytes.

A partir do MongoDB 6.0, o comando enableSharding não é mais necessário para fragmentar uma collection.

A partir do MongoDB 5.3, o comando balancerCollectionStatus retorna informações detalhadas quando executado em um namespace que está passando por desfragmentação de blocos. O resultado inclui a fase atual da desfragmentação e quantos chunks faltam processar.

Para ver um exemplo de saída, consulte Processo de desfragmentação contínuo.

A partir do MongoDB 5.1, o MongoDB usa um novo mecanismo de execução de query para queries elegíveis, chamado de mecanismo de execução de query baseado em slot. Se o mecanismo de execução de query baseado em slot for usado, novos campos serão incluídos no resultado do plano de explicação da query.

A partir da versão 6.0, o MongoDB usa o mecanismo de execução de query baseado em slot para executar os estágios qualificados $group e $lookup quando determinadas condições são atendidas.

Para obter mais informações, consulte Otimizações de pipeline do mecanismo de execução de query baseada em slot.

Você pode definir o tamanho do cache do plano para o novo mecanismo de query com o planCacheSize parâmetro.

Aumentar o tamanho do cache do plano adiciona mais formas de query em cache para o planejador de query. Isso pode melhorar o desempenho da query, mas aumenta o uso da memória.

As seções a seguir descrevem as adições à API estável introduzida no MongoDB 6,0.

Para ver a lista completa de comandos de banco de dados disponíveis na API estável, consulte o registro de alterações da API estável.

A partir do MongoDB 6.0, os seguintes comandos de banco de dados são compatíveis com a API estável:

Comando
Descrição
Versão estável da API
Conta o número de documentos em uma collection ou visualização. (Também disponível na API estável para sistemas série 5.0 a partir do MongoDB 5.0.9.)
V1

A partir do MongoDB 6.0, os seguintes estágios de aggregation e operadores são suportados na API Estável:

Estágio ou operador
Descrição
Versão estável da API
Retorna o elemento inferior de um grupo, de acordo com a ordem de classificação especificada.
V1
Retorna uma aggregation dos elementos n menos importantes dentro de um grupo, de acordo com a ordem de classificação especificada.
V1
Aumenta um objeto Date() por um número específico de unidades de tempo.
V1
Retorna a diferença entre duas datas.
V1
Reduz um objeto Date() por um número específico de unidades de tempo.
V1
Trunca uma data.
V1

Cria novos documentos em uma sequência de documentos onde determinados valores em um campo estão faltando.

V1
$firstN (acúmulo de agregação)
Retorna uma aggregation dos primeiros n elementos dentro de um grupo.
V1
$firstN (operador de array)
Retorna um número especificado de elementos desde o início de uma matriz.
V1
Retorna o valor de um campo especificado de um documento.
V1
$lastN (acúmulo de agregação)
Retorna uma aggregation dos últimos n elementos dentro de um grupo.
V1
$lastN (operador de array)
Retorna um número especificado de elementos do final de uma matriz.
V1

Última observação levada adiante. Define valores para null e campos ausentes em uma janela para o último valor não nulo do campo.

V1
$maxN (acúmulo de agregação)
Retorna uma aggregation do valor máximo de n elementos dentro de um grupo.
V1
$maxN (operador de array)
Retorna os maiores valores de n em uma array.
V1
$minN (acúmulo de agregação)
Retorna uma aggregation do valor mínimo de n elementos dentro de um grupo.
V1
$minN (operador de array)
Retorna os menores valores de n em uma array.
V1
Adiciona, atualiza ou remove um campo especificado em um documento.
V1
Executa operações em um intervalo especificado de documentos em uma collection, conhecido como janela, e retorna os resultados com base no operador de janela escolhido.
V1
Classifica um array com base em seus elementos.
V1
Retorna o principal elemento de um grupo de acordo com a ordem de classificação especificada.
V1
Retorna uma aggregation dos principais elementos n dentro de um grupo, de acordo com a ordem de classificação especificada.
V1

Retorna o ordinal incrementado de um carimbo de data/hora como long.

V1

Retorna os segundos de um carimbo de data/hora como long.

V1

A partir do MongoDB 6.0, os seguintes operadores de janela são suportados na API Stable:

Operador de Janela
Descrição
Versão estável da API
Retorna uma array de todos os valores únicos que resultam da aplicação de uma expressão a cada documento.
V1
Retorna a média da expressão especificada. Ignora valores não numéricos.
V1
Retorna o número de documentos no grupo ou janela.
V1
Retorna a covariância populacional de duas expressões numéricas.
V1
Retorna a covariância de amostra de duas expressões numéricas.
V1
Retorna a posição do documento (conhecida como classificação) relativa a outros documentos na $setWindowFields partição de estágio. Não há lacunas nas classificações. Os empates recebem a mesma classificação.
V1
Retorna a taxa média de alteração dentro da janela especificada.
V1
Retorna a posição de um documento (conhecido como o número do documento) na partição de estágio $setWindowFields . Vínculos resultam em diferentes números de documentos adjacentes.
V1
Retorna a média móvel exponencial da expressão numérica.
V1
Retorna o valor resultante da aplicação de uma expressão ao primeiro documento em um grupo ou janela.
V1
Retorna a aproximação da área abaixo de uma curva.
V1
Retorna o valor que resulta da aplicação de uma expressão ao último documento em um grupo ou janela.
V1

Última observação levada adiante. Define valores para null e campos ausentes em uma janela para o último valor não nulo do campo.

V1
Retorna o valor máximo resultante da aplicação de uma expressão a cada documento.
V1
Retorna o valor mínimo que resulta da aplicação de uma expressão a cada documento.
V1
Retorna uma array de valores que resultam da aplicação de uma expressão a cada documento.
V1
Retorna a posição do documento (conhecida como classificação) em relação a outros documentos na partição $setWindowFields de estágio .
V1
Retorna o valor de uma expressão aplicada a um documento em uma posição especificada em relação ao documento atual na $setWindowFields partição de estágio .
V1
Retorna o desvio padrão da população a partir de uma expressão numérica aplicada a cada documento.
V1
Retorna o desvio padrão da amostra a partir de uma expressão numérica aplicada a cada documento.
V1
Retorna a soma dos resultados ao aplicar uma expressão numérica a cada documento.
V1

As seções a seguir descrevem melhorias e novos recursos para collections de séries temporais.

O MongoDB 5.1 oferece suporte para coleções de séries temporais fragmentadas.

Veja:

A partir do MongoDB 6.0, você pode modificar a granularidade das coleções de séries temporais fragmentadas.

A partir do MongoDB 5.1, as coleções de séries temporais oferecem suporte a operações de atualização e exclusão com limitações.

A partir do MongoDB 5.2, as coleções de séries temporais usam compressão de coluna. A compactação de colunas adiciona várias inovações que funcionam juntas para melhorar significativamente a compactação prática, reduzir o armazenamento geral de seus dados em disco e melhorar o desempenho de leitura.

A partir do MongoDB 6.0, os arrays também são compactados como parte da compactação de colunas de série temporal.

A partir do MongoDB 5.3, você pode usar o operador de pipeline $geoNear em qualquer campo em uma coleção de séries temporais.

Você pode adicionar outros tipos de índice secundário às coleções de séries temporais, incluindo índices 2dsphere e 2d.

Para obter todos os índices adicionais e outros aprimoramentos, consulte Índices secundários de série temporal no MongoDB 6.0 e posterior.

Classificar operações em collections de séries temporais pode usar índices para melhorar o desempenho. Para obter mais informações e um exemplo, consulte Usar índices secundários para melhorar o desempenho de classificação.

A partir do MongoDB 6.0.7, o modo FIPS é compatível com OpenSSL3 para os seguintes sistemas operacionais:

  • Ubuntu 22.04

  • RHEL 9

  • Amazon Linux 2023

A partir do MongoDB 6.0, você pode alterar o tamanho máximo de uma capped collection, em bytes ou em número de documentos, usando o comando collMod. Consulte Redimensionar uma capped collection para obter mais detalhes.

A partir do MongoDB 6.0, a saída collStats inclui o campo collStats.numOrphanDocs que mostra o número de documentos órfãos na collection.

A partir do MongoDB 6.0 (e 5.0.9), você pode excluir campos incorporados da saída serverStatus .

A partir do MongoDB 6,0, o objeto de conexão Mongo() tem os seguintes novos métodos:

A partir do MongoDB 6.0 (e 5.0.10), a geração de backtrace de diagnóstico em arm64 é suportada.

A partir do MongoDB 5.2, você pode usar os seguintes novos parâmetros de servidor para configurar o intervalo de atualização para informações do usuário LDAP armazenadas em cache:

A partir do MongoDB 5.2, a frequência de atualização do cache com informações do usuário obtidas de um servidor LDAP é determinada pelo parâmetro ldapShouldRefreshUserCacheEntries:

A partir do MongoDB 5.2, os Resultados de Explicação suportam o estágio $group (GROUP), que separa documentos em grupos de acordo com uma chave de grupo, no campo stage .

Algumas alterações podem afetar a compatibilidade e podem exigir ações do usuário. Para obter uma lista detalhada das mudanças de compatibilidade, consulte Alterações de compatibilidade no MongoDB 6.0.

Importante

Versão de compatibilidade de recursos

Para atualizar para o MongoDB 6.0 a partir de uma versão 5.0, a versão 5.0 deve ter featureCompatibilityVersion definida como 5.0. Para verificar a versão:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

Para atualizar para o MongoDB 6.0, consulte as instruções de atualização específicas para o MongoDB deployment:

Se precisar de orientação sobre como atualizar para 6.0, os serviços profissionais do MongoDB oferecem suporte à atualização da versão principal para ajudar a garantir uma transição sem interrupções para seu aplicativo MongoDB. Para saber mais, acesse Consultoria do MongoDB.

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 6.0 para série 5.0. No entanto, desatualizar ainda mais o sistema série 5.0 para um sistema série 4.4 não é possível.

Para baixar o MongoDB 6.0, acesse a Central de Download do MongoDB.

Esta seção descreve os problemas conhecidos no MongoDB 6.0 e seu status de resolução.

Na versão
Emitir
Status
6.0.0
SERVIDOR-68062: As aggregations de múltiplos estágios que utilizam $geoNear podem violar restrições.
Resolvido na versão 6.0.1.

Para relatar um problema, consulte o Repositório do MongoDB no GitHub para obter instruções sobre como arquivar um ticket do JIRA para o servidor MongoDB ou um dos projetos relacionados.

← 7.0 Registro de alterações