NOVIDADES
Nesta página
Descubra as novidades de cada versão:
Próximas alteração interruptiva
MapReduceIterable e métodos map-reduce na MongoCollection são preteridos no MongoDB v4.2 e mais tarde. Eles serão substituídos pela estrutura de agregação e removidos em uma versão futura.
Novidades no 4.9
Importante
As operações de expressão de aggregation estão em versão beta
Esta versão do driver introduz uma API para criarexpressões de agregação do . Este recurso está na fase beta.
Os novos recursos da versão do driver 4.9 incluem:
Foi adicionada uma nova exceção para identificar quando um construtor anotado pelo
BsonCreator
contém parâmetros com anotações diferentes deBsonProperty
ouBsonId
.Foi alterado o formato da mensagem de registro para mensagens de monitoramento de comando relatadas pelo pacote
org.mongodb.driver.protocol.command
.Adição de suporte para o estágio de pipeline de agregação
$documents
à classe assistente Aggregates.Adicionado os métodos MongoClientSettings.Builder.applyToLoggerSettings() e LoggerSettings.Builder.maxDocumentLength() que permitem especificar um comprimento máximo para a representação JSON estendida de um documento BSON em uma mensagem de registro.
4.8: quais as novidades
Aviso
Alterações significativas na v4.8
O driver v4.8 contém alterações significativas. Para obter mais informações, consulte Alterações de ruptura da versão 4.8 e Alterações de suporte da versão 4.8 do servidor.
Importante
Aviso de depreciação
As classes IterableCodec
e MapCodec
estão obsoletas. Em vez disso, use CollectionCodec
e MapCodecV2
. Eles suportam qualquer classe que implemente Collection
ou Map
.
As mudanças comportamentais com a versão 4.8 do driver incluem:
Requisito que você adicione uma dependência explícita no módulo
org.bson.codecs.record
se seu aplicativo distribuir o driver em um container OSGi e depender do driver para codificar e decodificar registros Java.Registro de novas mensagens de conexão no nível
DEBUG
em vez de emINFO
.
Os novos recursos da versão do driver 4.8 incluem:
Suporte para autenticação com AWS. O driver tem uma dependência opcional do AWS SDK versão 1 e versão 2.
Suporte para obter credenciais do ambiente para GCP e Azure para criptografia em uso.
Suporte para desserialização de registros contendo componentes com parâmetros genéricos.
Suporte para desserialização de registros contendo componentes com tipos de contêiner mais específicos, como
SortedSet
,NavigableMap
,LinkedList
ouTreeSet
.Suporte para tipos de registro recursivos, registros cujas definições de tipo contêm ciclos.
Inclusão do campo
disambiguatedPaths
nos eventos de atualização do stream de alterações quando o recurso de servidorshowExpandedEvents
está ativado no MongoDB v6.1 e versões posteriores. Saiba mais sobre este campo em getDisambiguatedPaths() Documentação da API. Saiba mais sobre a configuraçãoshowExpandedEvents
na documentação do servidor Expanded Events .
Novidades no 4.7.1
O 4.7.1 driver corrige um bug que afeta a criptografia em nível de campo do lado do cliente e a Queryable Encryption. O bug pode causar corrupção de dados ao girar Chaves de criptografia de dados (DEKs) criptografadas com uma Chave mestre do cliente hospedada no GCP KMS ou Azure Key Vault. O bug estava presente na versão 4.7.0 do driver no método RewrapManyDataKey
e causa a perda dos seus DEKs.
Importante
Faça backup da sua coleção do Key Vault
Sempre faça o backup de sua coleção de cofre de chaves antes de fazer a rotação dos DEKs. Se você perder seus DEKs, perderá acesso a todos os dados criptografados com essas chaves.
O que há de novo em 4.7
Aviso
Alterações significativas na v4.7
O driver v4.7 contém alterações significativas. Consulte Alterações importantes na versão 4.7 para obter mais informações.
Os novos recursos da versão do driver 4.7 incluem:
Suporte completo adicionado para MongoDB 6.0.
Adicionadas as seguintes melhorias de suporte ao fluxo de mudança:
Suporte aprimorado pré e pós-imagem para fluxos de alteração. Os auxiliares de observação de fluxo de alteração agora aceitam
whenAvailable
erequired
para a opçãofullDocument
. Consulte a documentação de referência do fluxo de alterações para obter mais informações.Foi adicionada uma nova opção
fullDocumentBeforeChange
, que aceitawhenAvailable
erequired
.Alterar eventos agora inclui um campo
fullDocumentBeforeChange
quando configurado para exibição em sua coleção MongoDB.Adicionado suporte
showExpandedEvents
para fluxos de mudança.Adicionado suporte
wallTime
à classeChangeStreamDocument
.
Suporte de criação de índice agrupado adicionado.
Suporte para novos recursos relacionados à Queryable Encryption, incluindo suporte para criptografia automática (MongoDB v6.0 Enterprise ou posterior é necessário) e criptografia manual.
Suporte para a nova biblioteca compartilhada do Queryable Encryption , que remove a necessidade do processo do
mongocryptd
. A Queryable Encryption biblioteca compartilhada do requer org.mongodb:mongodb-crypt versão1.5.1.1
ou posterior.
Foi adicionada uma nova API para o gerenciamento de chaves de criptografia.
Adicionados métodos de API do construtor para estágios de agregação adicionais, incluindo
$search
/$searchMeta
(somente Atlas ),$densify
e$fill
. Saiba mais sobre esses métodos na página do Aggregates Builder .Foi adicionada a anotação
BsonExtraElements
que pode ser usada com codificação e decodificação POJO.BsonExtraElements
permite decodificar objetos que podem receber novos campos no futuro sem exigir que os desenvolvedores mapeiem explicitamente esses novos campos.Otimizações de desempenho, incluindo:
Implementações sem travamento do pool de sessão do servidor e do pool de buffer.
Uma nova implementação de limpeza de
DBCursor
que usa a API Cleaner do Java em vez de finalização, disponível no Java 9 ou posterior.
A API do construtor setWindowFields não é mais um recurso beta. Mudanças na API quebram a compatibilidade binária e de origem. Consulte Alterações importantes na versão 4.7 para obter mais informações.
4.6: quais as novidades
As novas funcionalidades da versão do driver Java 4,6 incluem:
O buffer pool agora é compartilhado por todas as
MongoClient
instâncias. O conjunto de buffers remove buffers que ficaram inativos por um minuto.Foi adicionada uma API para especificar fornecedores de credenciais do AWS KMS para criptografia em nível de campo do lado do cliente (CSFLE). Consulte a documentação da API para AutoEncryptionSettings.Builder.kmsProviderPropertySuppliers() e os clientEncryptionSettings.Builder.kmsProviderPropertySuppliers() para obter mais informações.
Compatibilidade adicionada ao
org.mongodb:mongodb-crypt
, uma dependência do CSFLE, para hardware baseado em ARM1 da Apple.Foi adicionada uma interface de provedor de serviços (SPI) para permitir que o driver especifique um cliente DNS personalizado. Consulte a documentação da API da interface DnsClient e DnsClientProvider para obter mais informações.
Adição de suporte de driver para codificação e decodificação entre registros Java e documentos BSON, que é ativado por padrão. Consulte Formato de dados do documento: registros para obter mais informações.
Novidades no 4.5.1
Se o servidor DNS retornar um erro de NXDomain, indicando um domínio inexistente, o driver do 4,5,1 não lançará mais uma exceção.
Novidades no 4.5
As novas funcionalidades da versão 4,5 do driver Java incluem:
Foi adicionado suporte para especificar nomes de serviços personalizados de registros de recursos SRV. Consulte a configuração do
srvServiceName
no guia Opções de Conexão para mais informações.Foi adicionado suporte para personalizar a representação de UUID em um registro de codec usando o método
CodecRegistries.withUuidRepresentation()
.Adicionado suporte para substituir as configurações de ouvinte nos construtores
ClusterSettings
,ServerSettings
eConnectionPoolSettings
.Todos os eventos recebidos por
ClusterListener
,ServerListener
eServerMonitorListener
agora são totalmente ordenados usando uma relação happens-before quando os ouvintes não são compartilhados por instâncias diferentes do MongoClient. Para saber mais sobre a ordem antes de acontecer,consulte Ordem antes deacontecer na Especificação da linguagem Java.Foram adicionadas classes
EnumCodec
eEnumCodecProvider
para separar o suporte de codec para tipos dePojoCodec
enum
classe . Os registros de codec padrão, acessíveis a partir das interfaces doMongoClientSettings
eBson
, agora incluem as classes de codec doenum
. Se o seu aplicativo usar um codec de enumeração personalizado e um dos registros padrão, certifique-se de ordená-los conforme descrito na seção sobre substituição de codecs.Resolveu problemas de desempenho que afetaram as versões 4.4 e 4.3 do driver. O desempenho nesta versão deve ser semelhante ao desempenho no 4.2.
Foi resolvido um problema no qual os erros originados da recuperação da descrição do cluster não eram passados para a chamada de resposta do assinante
onError
Foi resolvido um problema com a liberação de instâncias
ByteBuf
quando você se conecta com a compactação habilitada.Foi removida uma dependência desnecessária dos pacotes
javax.annotation.*
do pacoteorg.mongodb.driver-core
OSGi.
O que há de novo em 4.4
As novas funcionalidades da versão do driver do 4,4 Java incluem:
Compatibilidade com MongoDB 5.1 e suporte para Java 17
Adicionado suporte para dicas de índice em um
AggregateIterable
Adicionado suporte para os estágios de agregação
$merge
e$out
em secundáriosUso do método
mergeObjects()
no construtorUpdates
DocumentCodec
não ignora um CodecRegistry ao escrever em uma instância doIterable
ouMap
Novidades no 4.3
As novas funcionalidades da versão do driver do 4,3 Java incluem:
Suporte adicionado para a API estável do MongoDB. Para obter mais informações, consulte nosso Guia de API estável.
Observação
A partir de fevereiro de 2022, a API Versionada é conhecida como a API estável. Todos os conceitos e funcionalidades permanecem os mesmos com essa mudança de nomenclatura.
Suporte adicionado para conexão com Instâncias sem servidor do MongoDB Atlas. Para obter mais informações sobre a instalação, consulte nossa documentação sobre como criar uma nova instância sem servidor
Foi adicionada uma API de construtor para o estágio de pipeline
setWindowFields
para permitir o uso de operadores de janelaSuporte adicionado para configurar Netty io.netty.handler.ssl.SslContext
Adicionado suporte para leituras de snapshots para
ClientSession
Taxa limitada de estabelecimento de novas conexões por pool de conexões
Removeu a maioria das restrições aos caracteres permitidos nos nomes dos campos dos documentos que você insere ou substitui. Essa é uma mudança comportamental para qualquer aplicativo que dependa da aplicação dessas restrições pelo lado do cliente.
A tabela a seguir mostra o status de restrição em caracteres permitidos nos nomes de campo dos documentos:
Personagem | (operação) | Descrição |
---|---|---|
. | Inserir e substituir | Removidas restrições em nomes de campos que contêm este caractere. |
$ | Insert | Foram removidas as restrições aos nomes de campos que começam com esse caractere. |
$ | Substituir | Restrições removidas em documentos aninhados em nomes de campo que contêm este caractere. |
$ | Substituir | Manteve restrições em documentos de nível superior sobre nomes de campo que começam com esse caractere. Isso evita o uso acidental de uma operação de substituição quando a intenção era usar uma operação de atualização. |
Observação
Gravações não confirmadas usando chaves com prefixo em dólar ou pontilhadas podem ser rejeitadas silenciosamente até a versão anterior à versão 5.0 servidores, onde algumas restrições aos nomes dos campos ainda são aplicadas no servidor.
4.2: quais as novidades
Aviso
Alterações significativas na v4.2
O driver v4.2 contém alterações significativas. Consulte as Alterações significativas na versão 4.2 para obter mais informações.
As novas funcionalidades da versão 4.2 do driver Java incluem:
Adição de armazenamentos de chaves do Azure e do GCP à criptografia no nível do campo no lado do cliente
Adição de tickets de cache Kerberos para reutilização em várias solicitações de autenticação
MongoClients adicionados instâncias com
MongoClientSettings
ouConnectionString
como a configuraçãoFoi adicionada uma classe JSONObject para tornar a codificação e a decodificação para JSON mais eficientes, evitando uma representação intermediária do mapa
Adição de uma BsonRepresentação anotação que permite representar os
ObjectId
valores BSON comoString
no POJO aulasAdição do método Filters.empty() .
Novidades no 4.1
As novas funcionalidades da versão do driver do 4.1 Java incluem:
Redução significativa nos tempos de failover percebidos pelo cliente durante eventos de manutenção planejados
Os métodos update() e delete() agora suportam dicas de índice
O método
find()
é compatível com allowDiskUse() para tipos que exigem muita memória para serem executados na RAMFoi adicionado suporte ao mecanismo de autenticação MONGODB-AWS usando as credenciais do Amazon Web Services (AWS) Identity e Access Management (IAM)
A autenticação exige menos viagens de ida e volta para o servidor, resultando em uma configuração de conexão mais rápida
4.0: quais as novidades
Aviso
Alterações significativas na v4.0
O driver v4.0 contém alterações significativas. Consulte Mudanças recentes na versão 4.0 para obter mais informações.
Esta versão não adiciona novos recursos.