Descubra as novidades de cada versão:
5.4: quais as novidades
A versão do driver 5.4 inclui as seguintes alterações, correções e recursos:
Adiciona suporte ao
BsonConfigurationparabson-kotlinxpara conversão de caso de cobra durante a serialização. Para saber mais, consulte a seção Implementar estratégia de nomenclatura de casos de cobra do guia Serialização.
Suporta
$lookupoperações para CSFLE e QE. Para saber mais, consulte as seguintes referências no manual do servidor:Comportamento $lookup e $graphLookup para CSFLE
Apresenta uma Lista de materiais (BOM) para gerenciar versões de artefatos MongoDB JVM que você pode usar em seu aplicação. Para exibir instruções sobre como adicionar o BOM ao seu aplicação, consulte a etapa Adicionar a lista de materiais do driver do tutorial Baixar e instalar.
Atualiza as dependências do Amazon Web Services SDK para 2.30.31 e 1.12.782 para testar o mecanismo de autenticação
MONGODB-AWS.Adiciona uma opção de classificação às classes
ClientUpdateOneOptionseClientReplaceOneOptions. Essa alteração permite definir uma ordem de classificação para operações de atualização e substituição em gravações em massa de cliente . Para saber mais, consulte as seções Operação de atualização e Operações de substituição do guia Operações de gravação em massa.Adiciona suporte do Kubernetes para autenticação OIDC. Para saber mais, consulte a seção MONGODB-OIDC: Kubernetes do guia Mecanismos de autenticação empresarial.
Adiciona suporte de primeira classe para os seguintes operadores de query do MongoDB Search:
phraseregexqueryStringequalsmoreLikeThisinwildcard
To learn more, see the MongoDB Search section of the Aggregation guide.
Atualiza cursores para atualizar a configuração
timeoutMSquando você chamaclose()sem afetar o tempo limite da operação.Permite utilizar um índice ao chamar o método
distinct()especificando uma opçãohint.
Para ver uma lista completa de alterações nesta versão, consulte as notas de versão v5.4 no Github.
O que há de novo em 5.3
A versão do driver 5.3 inclui os seguintes novos recursos, melhorias e correções:
Importante: a próxima versão menor eliminará o suporte para a versão do MongoDB Server 4.0 e aumentará a versão mínima suportada 4.2 para. Recomendamos fazer alterações em seu aplicação para acomodar alterações significativas. Consulte a seção Notas de versão no manual do servidor para saber mais sobre a atualização.
Adiciona a classe
BinaryVectorpara implementar o Subtipo Binário BSON 9 para armazenamento e recuperação vetorial. Esta classe fornece armazenamento mais eficaz de valores em comparação com uma lista de instâncias doDouble. Você pode criar os seguintes tipos de vetores com base no tipo de elementos que seu vetor contém:Int8BinaryVector: Vetor de números inteiros assinados com 8bitsFloat32BinaryVector: Vetor de números de ponto flutuantePackedBitBinaryVector: Vetor quantizado binário (em versão beta e sujeito a alterações antes de se tornar disponível ao público em geral)
Para saber mais sobre este recurso, consulte Quantização vetorial na documentação do Atlas. Para saber mais sobre esse tipo, consulte a documentação da API BinaryVector.
Remove a imparcialidade explícita da implementação do pool de conexões . Esta alteração pode contribuir para um melhor rendimento quando você usa uma instância
MongoClientem muitos threads de aplicação . No entanto, essa alteração pode causar um aumento na latência da cauda.Adiciona uma opção de classificação aos métodos
updateOne()ereplaceOne(). Essa alteração também permite que você defina uma classificação como uma opção ao criar instânciasReplaceOneModeleUpdateOneModel. Para saber mais, consulte os guias Atualizar documentos, Substituir documentos e Operações de gravação em massa.
Suporte para utilizar métodos de classe de construtores diretamente com propriedades de classe de dados. Para saber mais, consulte o guia Use Builders with Data Classes. Essa funcionalidade é suportada pelo pacote de extensões do driver Kotlin Sync publicado com esta versão.
Implementa uma API de gravação em massa do cliente que permite executar operações de gravação em vários bancos de dados e coleções na mesma chamada. Para saber mais sobre esse recurso, consulte a seção Gravação em massa do cliente do guia Operações de gravação em massa.
Novidades no 5.2
Importante
Remoção de suporte para o MongoDB Server 3.6
O driver do Kotlin Sync v5.2 remove o suporte para o MongoDB 3.6 Server. Para saber mais sobre versões compatíveis do servidor, consulte Compatibilidade.
A versão do driver 5.2 inclui os seguintes novos recursos, melhorias e correções:
Permite definir um tempo limite de operações do lado do cliente (CSOT). Esse recurso permite que você defina um tempo limite único na sua instância
MongoClientque se aplica a todas as operações realizadas com esse cliente. Para saber mais, consulte o guia Limitar o tempo de execução do servidor.Importante
Opções de tempo limite obsoletos
As seguintes opções de tempo limite são preteridas:
waitQueueTimeoutMSsocketTimeoutMSwTimeoutMSmaxTimeMSmaxCommitTimeMS
Use o recurso CSOT para substituir a funcionalidade dessas opções.
Adds the
SearchIndexTypeclass, which you can pass when constructing aSearchIndexModelinstance. This change allows you to specify the index type when creating an Atlas Search or Vector Search index. To learn more, see the MongoDB Search and Vector Search Indexes guide.Delega a implementação dos algoritmos que implementam os mecanismos de autenticação
SCRAM-SHA-1eSCRAM-SHA-256ao provedor JCA configurado. Essa alteração significa que seu aplicação pode usar um provedor JCA configurado compatível com FIPS para fornecer um nível mais alto de segurança.Revisa a versão de dependência mongodb-crypt para corresponder à versão dos drivers da JVM . Futuras versões do
mongodb-cryptserão lançadas junto com o driver e compartilharão o mesmo número de versão. Você deve atualizar sua dependênciamongodb-cryptpara v5.2.0 ao atualizar seu driver para esta versão. Para saber mais, consulte o guia criptografia em execução.Melhorias de desempenho devido à implementação de criptografia nativa em todas as plataformas suportadas. A lista a seguir descreve as ações necessárias para implementar essa melhoria dependendo do seu sistema operacional:
Windows: atualize sua versão do
mongodb-cryptpara v5.2.0.Mac: atualize sua versão do
mongodb-cryptpara v5.2.0.Linux: instale
libmongocrypt.sodiretamente no sistema de arquivos, em vez de usar o arquivo fornecido com o arquivo JARmongodb-crypt. Você pode encontrar instruções do Linux para instalar olibmongocryptno manual do Servidor. Se você usar um gerenciador de pacote para instalar olibmongocrypt, o Java Native Access (JNA) o encontrará lá sem configurações adicionais. Como alternativa, você pode especificar o caminho da pesquisa definindo a variável de ambienteLD_LIBRARY_PATHpara o caminho do arquivo do pacotelibmongocrypt.Recomendamos a instalação direta porque a biblioteca compartilhada agrupada não está vinculada ao OpenSSL devido ao potencial de incompatibilidades binárias do OpenSSL.
O carregamento da biblioteca compartilhada é tratado pelo JNA. Você pode visualizar as regras para a ordem do caminho da pesquisa de carregamento da biblioteca na documentação da classe NativeLibrary.
Corrige um problema que fazia com que os métodos
InsertOneResult.getInsertedId()eInsertManyResult.getInsertedIds()retornassem IDs de documento incorretos em algumas situações. Essa alteração é portada para o driver do Kotlin Sync v5.1.4 e v4.11.4.Quando uma operação de cluster fragmentado não obtém êxito, o driver evita selecionar o mesmo servidor
mongospara tentativas de repetição de operação se outros servidoresmongosestiverem disponíveis.Adiciona metadados de acessibilidade necessários quando seu aplicação usa Imagem nativa do GraalVM. Esses metadados substituem a necessidade de coletar metadados de acessibilidade ao usar as bibliotecas de drivers. Para saber mais, consulte Metadados de acessibilidade na documentação do GraalVM.
Essa alteração não adiciona as entradas de recursos
libjnidispatchelibmongocrypt, porque a adição de entradas para todas as plataformas suportadas (destinos) afeta significativamente o tamanho dos executáveis nativos criados usando a GraalVM Native Imagem. Visualize este exemplo de arquivo resource-config.json no repositório do driver Github para ver como especificar essas entradas explicitamente se seu aplicação depender da bibliotecaorg.mongodb:mongodb-crypt.Ativa a pesquisa vetorial exata estendendo a API
VectorSearchOptionspara introduzir os seguintes subtipos de opção específicas:ExactVectorSearchOptions: use esse tipo de opções para habilitar a correspondência precisa, garantindo que os resultados sejam os vetores mais próximos de um determinado vetor de consulta.ApproximateVectorSearchOptions: use este tipo de opções para habilitar pesquisas que podem não retornar os vetores exatos mais próximos. Você pode passar um parâmetronumCandidatesao instanciar esse tipo para especificar o número de vizinhos mais próximos a serem considerados.
Para saber mais sobre como usar o recurso Vector Search do MongoDB , consulte o Início Rápido do Vector Search do MongoDB e selecione Kotlin (Sync) no menu suspenso de idiomas.
Adiciona suporte para serializadores da biblioteca
kotlinx-datetimeque permitem mapear tipos de data e hora de Kotlin para BSON como os tipos esperados em vez de strings. Para saber mais, consulte a seção Serialize Dates and Times do guia Kotlin Serialization.Suporta serialização de valores JsonElement. Para trabalhar com o tipo
JsonElement, você deve adicionar a bibliotecakotlinx-serialization-jsoncomo uma dependência em seu aplicação.
Novidades em 5.1.3
O 5.1.3 a versão do patch do driver inclui as seguintes alterações:
Corrige um problema que pode causar erros de asserção ao usar
Cursortipos.
Novidades em 5.1.2
O 5.1.2 a versão do patch do driver inclui as seguintes alterações:
Suporte para codificação de classes de dados Kotlin com tipos de parâmetro genéricos anuláveis. Por exemplo, você pode codificar a classe
Containerno seguinte código:data class Box<T>( val boxed: T ) data class Container( val box: Box<String?> )
Novidades em 5.1.1
O 5.1.1 a versão do patch do driver inclui as seguintes alterações:
Ao usar o mecanismo de autenticação
MONGODB-OIDC, você não deve incluir vírgulas no valor da string de conexãoauthMechanismProperties. Para saber mais sobre esse comportamento, consulte o guia MONGODB-OIDC.
Novidades no 5.1
Aviso
Depreciações nesta versão
Para evitar alterações significativas em futuras versões principais do driver, substitua qualquer código de aplicativo que dependa de elementos de programa obsoletos.
Esta seção inclui as seguintes informações:
Descontinuações no 5.1
O suporte para o MongoDB Server v3.6 está obsoleto e será removido na próxima versão do driver. Para saber como atualizar seu sistema do MongoDB Server , consulte Notas de versão no manual do MongoDB Server .
Melhorias na versão 5.1
Testes internos da tecnologia de imagem nativa GraalVM. Esses testes envolvem a criação de aplicativos nativos usando a ferramenta de imagem nativa GraalVM.
Suporte aprimorado para o mecanismo de autenticação
MONGODB-OIDC. Para saber mais sobre o OIDC, consulte o guia MONGODB-OIDC.Corrige um problema no qual as operações usavam o codec incorreto ao usar uma instância polimórfica
MongoCollection. Isso garante que as informações do discriminador não sejam perdidas ao usarbson-kotlinx.Corrige um problema no qual o discriminador de classe era o primeiro campo ao decodificar, resultando em erros de tipo de campo ao usar uma instância polimórfica
MongoCollection.
Novos recursos em 5.1
Suporte para serialização polimórfica . Para saber mais, consulte a seção Serialização polimórfica do guia Serialização Kotlin .
Introduz a opção
serverMonitoringModede conexão URI. Para saber mais, consulte o guia Especificar opções de conexão .
Novidades no 5.0
Os novos recursos da versão do driver 5.0 incluem:
O construtor
KotlinSerializerCodecProvideragora aceita objetosserializersModuleebsonConfiguration:KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration) Isso torna mais fácil personalizar sua configuração.
Corrige um bug de reflexão do Kotlin que resultou no apagamento do tipo de container.