Menu Docs
Página inicial do Docs
/
Manual 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
  • Indexes
  • Instalação
  • Suporte a plataformas
  • Conjuntos de réplicas
  • Segurança
  • Parâmetros do servidor MongoDB
  • 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 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
SERVIDOR-68511
6.0.0
6.0.0 - 6.0.12
6.0.0 - 6.0.11 (Coleção de séries temporais fragmentadas por objetos embarcados metaField)
6.0.0 - 6.0.13
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 autopesquisa de CSFLE e Queryable Encryption pode enviar valores malformados em subpipelines

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 6.0 antes de 6.0.14, 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

Aviso

Se você atualizar uma instância existente do MongoDB para o MongoDB 6.0.5, essa instância poderá falhar ao iniciar se fork: true estiver definido no arquivo mongod.conf .

O problema de atualização afeta todas as instâncias MongoDB que utilizam pacotes de instalação do .deb ou .rpm . As instalações que usam a versão tarball (.tgz) ou outros tipos de pacote não são afetadas. Para obter mais informações, consulte SERVER-74345.

Para remover a configuração fork: true , execute estes comandos a partir de um terminal do sistema:

systemctl stop mongod.service
sed -i.bak '/fork: true/d' /etc/mongod.conf
systemctl start mongod.service

O segundo comando systemctl inicia a instância atualizada após a configuração ser removida.

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 coleção 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 do cluster para uma implantação autogerenciada para modificar e recuperar as opções de configuração de 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 uma collection com um índice agrupado. As collections criadas com um índice clusterizado são chamadas de collections clusterizadas.

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:

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.

O MongoDB 6.0.3 introduz suporte para RHEL /CentOS/Oracle/Rocky/AlmaLinux 9.

Para instalar o MongoDB no RHEL, consulte:

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 lote de oplog em secundários. Adicionar um pequeno atraso de oplog de lote pode reduzir o IOPS em secundários, mas adiciona latência para gravações com referência de escrita "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.

mongod adiciona estes parâmetros:

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 chunks. Como resultado, você deve estar ciente das seguintes alterações significativas no comportamento de distribuição de dados de cluster fragmentado:

  • O balanceador distribui intervalos de dados em vez de partes. A política de balanceamento busca a distribuição uniforme de dados em vez da distribuição de partes.

  • Os partes não estão sujeitos à divisão automática. Na verdade, eles são divididos apenas quando movidos entre fragmentos.

  • 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.

As seções a seguir descrevem as adições à Stable APl introduzidas 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 de data em um número específico de unidades de tempo.
V1
Retorna a diferença entre duas datas.
V1
Reduz um objeto de data 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.

Consulte:

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 time-series índice secundário no MongoDB 6.0.

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.12 (e 5.0.22), você pode eliminar o índice para uma chave de fragmento com hash.

Isso pode acelerar a inserção de dados para collections fragmentadas com uma hashed shard key. Também pode acelerar a ingestão de dados ao usar mongosync.

Para mais informações, consulte Descartar um índice de hashed shard key.

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 é permitda.

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:

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:

Caso você precise de orientação ao atualizar para a versão 6.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.

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 o downgrade de uma série 4.4 para uma implantação da série 4.2. No entanto, fazer outro downgrade da implantação da série 4.2 para uma implantação da série 4.0 não é suportado.

Para baixar o MongoDB 6.0, acesse a Central de downloads 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: Agregações de vários estágios que usam $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.

Voltar

Notas de versão