Esta página descreve as alterações introduzidas no MongoDB 7.0 que podem afetar a compatibilidade com versões mais antigas do MongoDB.
O MongoDB 7.0 é uma versão principal, o que significa que ele é suportado tanto para o MongoDB Atlas quanto para sistemas on-premises. O MongoDB 7.0 inclui alterações introduzidas no MongoDB Rapid Releases 6.1, 6.2 e 6.3. Esta página descreve as alterações de compatibilidade introduzidas nessas Rapid Releases e no MongoDB 7.0.
Para saber mais sobre as diferenças entre as Rapid Releases e versões principais, consulte Versões do MongoDB .
Para obter detalhes sobre o downgrade do MongoDB 7.0, consulte Downgrade 7.0 para 6.0.7
Itens obsoletos
Obsoleto(a) | Descrição |
|---|---|
| Descontinuado na versão 7.0. |
Descontinuado apenas para Linux em 7.0. |
Monitoramento gratuito desativado
A partir do MongoDB 7.0, o monitoramento gratuito será desativado. Os seguintes itens não estão disponíveis:
cloud.monitoring.freeOpção de configuração--enableFreeMonitoringserver parameterdb.enableFreeMonitoring()comandodb.disableFreeMonitoring()comandosetFreeMonitoringcomando
Disponibilidade gerado de queryable encryption
A partir do MongoDB 7.0, o 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.
Compatibilidade de servidores e drivers entre o Public Preview e o GA
Para usar a Queryable Encryption com queries de igualdade, o servidor MongoDB deve ser da versão 7.0 ou posterior e os drivers devem ser compatíveis com a versão 7.0. Se você ainda estiver usando o Queryable Encryption Public Preview incluído no MongoDB 6.x, o servidor deverá permanecer na versão 6.x e os drivers deverão ser compatíveis com a 6.x. Você não pode utilizar drivers compatíveis com MongoDB 6.x com um servidor 7.0 ou drivers compatíveis com 7.0 com um servidor 6.x. Tentar fazer isso resulta em um erro.
Para facilitar a atualização, os drivers MongoDB 7.0 podem descriptografar dados criados com drivers MongoDB 6.x. Para opções de atualização, consulte as seções a seguir.
Começar de novo (preferencialmente)
Se possível, crie novas coleções em vez de migrar aquelas produzidas com a pré-visualização pública de criptografia herdável no MongoDB 6.x:
Atualize o servidor MongoDB e drivers para o 7.0.
Configure uma nova coleção criptografada com um nome diferente da coleção anterior.
Insira novos dados ou uma versão não criptografada dos dados existentes se você tiver uma cópia local.
Solte a coleção anterior da versão 6.x.
Migração
Se você não puder usar novos dados ou não tiver uma versão não criptografada dos dados existentes:
Atualize o servidor MongoDB e os drivers para o 7.0
Utilizando um driver compatível com 7.0, consulte a coleção criptografada para descriptografá-la.
Salve a saída localmente.
Configure uma nova coleção criptografada e ingira os dados.
Aviso
As operações
mongoexportemongodumpnão descriptografam a coleção. Você deve consultar a collection de um driver para gerar os dados descriptografados.Os drivers compatíveis com o MongoDB 7.0 não podem executar queries de campos criptografados em dados criptografados com drivers compatíveis com o MongoDB 6.x. Para descriptografar dados, consulte um campo não criptografado ou consulte a coleção inteira.
Funcionalidades incompatíveis com versões anteriores
Os seguintes recursos da versão 7.0 não são compatíveis com versões anteriores do MongoDB. Para fazer downgrade do MongoDB 7.0 para uma versão anterior, remova dados que usam qualquer uma das seguintes funcionalidades:
Coleções com
encryptedFieldscom intervalo de índicesOs índices compostos de curingas exigem FCV 7.0 ou superior. Um pré- não7.0
mongodserá iniciado se você estiver usando um ou mais índices compostos de curingas.Servidores de configuração que têm coleções com
changeStreamPreAndPostImageshabilitadoÍndices TTL secundários com filtros parciais em coleções de séries temporais
Coleções de séries temporais com parâmetros de cluster personalizados
Autenticação intra-nó
Iniciando no MongoDB 7.0, você pode configurar servidores para autenticar certificados X.509 como membros do cluster identificados por atributos ou valores de extensão. Você também pode substituir essa configuração para aceitar certificados alternativos durante uma atualização contínua.
Para fazer o downgrade para o MongoDB 6.0, execute o procedimento de rotação de certificados para remover a configuração net.tls.clusterAuthX509 e alternar os certificados de associação do cluster para aqueles com atributos DC, O e OU correspondentes.
Quando isso for concluído, você poderá fazer downgrade do cluster.
Série temporal
Remover índices TTL parciais de coleções de séries temporais.
Remova ou modifique coleções usando novos parâmetros de índice. Em alguns casos, você pode usar
collModpara alternar para configurações de granularidade herdadas, se não você precisar descartar a coleção antes de fazer downgrade.
Configuração de Cluster
As operações de parâmetro de setClusterParameter ativas impedem que a feature compatibility version (fCV) seja concluída corretamente.
Multimapa criptografado (EMM)
Remova as coleções que utilizam a opção de coleção encryptedFields antes de fazer o downgrade.
Índices curinga
Os índices compostos de curingas exigem FCV 7.0 ou superior. Um pré- não7.0 mongod será iniciado se você estiver usando um ou mais índices compostos de curingas.
Comportamento de autenticação do token de acesso OIDC
A partir do MongoDB 7.0, somente um campo de público oidcIdentityProviders pode ser especificado para tokens de acesso do OIDC. Campos de público com arrays vazias ou arrays de várias strings são inválidos.
Para obter detalhes, consulte CamposoidcIdentityProviders.
$natural Valores aceitos por parâmetros
Antes do MongoDB,7.0 $natural aceita valores de tipo incorretos,0 NaNcomo,, "X"-0.01 e. Após o MongoDB,7.0 se você passar qualquer valor diferente de 1 e -1 $naturalpara, o MongoDB retornará um erro.
Alterações introduzidas no MongoDB 6.3
Configurações de granularidade
A partir do MongoDB,6.3 você pode configurar a granularidade do bucket de série temporal usando os novos bucketMaxSpanSeconds bucketRoundingSeconds parâmetros de bucketing personalizado e. Para fazer o downgrade abaixo 6.3 de, você deve eliminar todas as collections com esses parâmetros ou modificá-las para usar granularity correspondente. Para detalhes,collMod consulte.
Nem todos os valores bucketMaxSpanSeconds e bucketRoundingSeconds correspondem a um valor granularity . Nesses casos, você deve descartar a coleção.
Índices TTL parciais para Coleções de séries temporais
A partir do MongoDB,6.3 você pode criar índices parciais de Time To Live (TTL) em coleções de séries temporais. Para fazer o downgrade abaixo 6.3 de, você deve remover todos os índices TTL parciais de suas coleções de séries temporais.
Alterações introduzidas no MongoDB 6.2
config.settings Validação de esquema
A partir do MongoDB,6.2 você deve definir value entre 1 e 1024 (inclusive) ao inserir ou atualizar documentos com o _id: chunksize campo na coleção. Se você especificar config.settings um value inválido, o MongoDB retornará um erro de validação de esquema .
Quaisquer campos value fora do intervalo de 1 a 1024 MB (inclusive) definidos antes do MongoDB 6.2 permanecem inalterados.
Opções removidas
Iniciando na versão 6.2, o MongoDB remove o campo maxSize do comando addShard. Como resultado:
Alterações introduzidas no MongoDB 6.1
$add Erros de arredondamento de ponto flutuante
A partir do MongoDB,6.1 quando uma expressão recebe uma lista de entrada com vários valores de ponto flutuante, o MongoDB pode retornar resultados ligeiramente diferentes em comparação com as versões $add anteriores.
A expressão $add não contabiliza mais erros de arredondamento de ponto flutuante. Como resultado, o $add se comporta como adição na maioria das linguagens de programação.
Por exemplo, a seguinte expressão $add retorna um resultado diferente quando executada no MongoDB 6.1 em comparação com versões mais antigas:
db.test.aggregate( [ { $project: { sumOfValues: { $add: [ 0.1, 0.2, 0.3 ] } } } ] )
MongoDB 6.1 e saída posterior:
[ { _id: ObjectId("6390f8085425651d8d0ef0a7"), sumOfValues: 0.6000000000000001 } ]
MongoDB 6.0 e saída anterior:
[ { _id: ObjectId("6390f8085425651d8d0ef0a7"), sumOfValues: 0.6 } ]
Sem divisão automática de chunk
A partir do MongoDB 6.0.3, a divisão automática de partes não é executada. Isso se deve a melhorias na política de balanceamento. Os comandos de divisão automática ainda existem, mas não executam uma operação.
A partir do MongoDB 6.1, os seguintes comandos de divisão automática não executam uma operação:
Opções removidas
A partir do MongoDB 6.1, os registros no diário estão sempre habilitados. Consequentemente, o MongoDB remove a opção storage.journal.enabled e as opções de linha de comando --journal e --nojournal correspondentes.
A partir do MongoDB,6.1 o SNMP é removido. Todas as opções de linha de comando relacionadas impedem mongod que o seja iniciado. Para monitorar sua implantação, use o MongoDB Ops Manager.
Parâmetros do servidor MongoDB
A partir do MongoDB,6.1 o valor padrão coordinateCommitReturnImmediatelyAfterPersistingDecision para false é.
Alterações em métricas de fragmentação
currentOp.opStatus é removido das métricas de refragmentação no MongoDB 6.1.
Visualizações não permitidas no namespace da bucket collection
Você não pode criar uma visualização a partir de um namespace de collection de série temporal (ou seja, uma collection prefixada system.buckets com).
Se você estiver atualizando para o MongoDB 6.1 a partir de uma versão anterior, deverá descartar todas as visualizações criadas nas coleções system.buckets.