Visão geral
Esta página descreve as alterações que você deve fazer no seu aplicação ao atualizar para uma nova versão do driver C.
Antes de atualizar, execute as seguintes ações:
Certifique-se de que a nova versão do driver C seja compatível com as versões do MongoDB Server às quais seu aplicação se conecta e com a plataforma em que seu aplicação é executado. Para obter informações sobre compatibilidade de versões, consulte a página Compatibilidade do driver C.
Resolva quaisquer alterações significativas entre a versão atual do driver que seu aplicação usa e a versão de atualização planejada na seção Alterações significativas. Para saber mais sobre as alterações de compatibilidade da versão do MongoDB Server , consulte a seção Alterações de compatibilidade da versão do servidor.
Dica
Para minimizar o número de alterações que seu aplicação exige ao atualizar as versões do driver no futuro, use a API estável. Para saber mais, consulte o Guiade API estável.
Mudanças de última hora
Observação
O driver C segueo controle de versão semântica. O driver pode quebrar os sistemas de compilação ou a compatibilidade do pacote em qualquer versão. As versões de patch podem reverter alterações acidentais de quebra da API.
Uma alteração significativa é uma alteração de uma convenção ou comportamento a partir de uma versão específica do driver. Esse tipo de alteração pode impedir que seu aplicativo funcione corretamente se não for resolvido antes de atualizar o driver.
As alterações interruptivas nesta seção são categorizadas pela versão do driver que as introduziram. Ao atualizar as versões do driver, resolva todas as alterações interruptivas entre a versão atual e a atualizada.
O driver C consiste em duas bibliotecas: libbson e libmongoc. As seções deste guia descrevem as alterações significativas incluídas em cada biblioteca.
Exemplo
Atualizando para a versão 2.0.0
Se você estiver atualizando o driver C da versão 1.x para a versão 2.0.0, resolva todas as alterações significativas listadas para as versões 1.x até a versão 2.0.0, inclusive
Versão 2.1.0
alterações significativas no libbson
A versão 2.1.0 do libbson inclui as seguintes alterações significativas:
Remove o suporte para Debian 9 e Debian 10.
O projeto CMake define uma versão máxima da política CMake de
4.0. As versões anteriores do driver não definem a versão máxima da política. Essa pode ser uma alteração interruptiva do sistema de construção, dependendo da versão do CMake e das opções de configuração do CMake.
Alterações significativas em libmongoc
A versão 2.1.0 do libmongoc inclui as seguintes alterações significativas:
Remove o suporte para Debian 9 e Debian 10.
O projeto CMake define uma versão máxima da política CMake de
4.0. As versões anteriores do driver não definem a versão máxima da política. Essa pode ser uma alteração interruptiva do sistema de construção, dependendo da versão do CMake e das opções de configuração do CMake.
Versão 2.0.0
alterações significativas no v2.0.0
A versão 2.0.0 do libbson inclui as seguintes alterações significativas:
Reduz o valor da macro
BSON_ERROR_BUFFER_SIZEde504para503para reserva o byte final para uso interno.Renomeia os seguintes arquivos
pkg-config:libbson-1.0: renomeado parabson2libbson-static-1.0: renomeado parabson2-static
Remove o pacote
bson-1.0CMake. Em vez disso, usebsone especifique uma versão ou intervalo de versões a ser importado, conforme mostrado no exemplo a seguir:find_package(bson 1.30...2.0) Renomeia os seguintes destinos importados:
mongo::bson_static: renomeado parabson::staticmongo::bson_shared: renomeado parabson::shared
Adiciona o destino
bson::bson, que aponta para a biblioteca estática ou biblioteca compartilhada dependendo do valor da opçãoBSON_DEFAULT_IMPORTED_LIBRARY_TYPECMake. Se você não definir esta opção e ambos os tipos de biblioteca estiverem disponíveis, obson::bsonutilizará a biblioteca estática.
libmongoc Alterações significativas no v2.0.0
A versão 2.0 do libmongoc inclui as seguintes alterações significativas:
Se você passar a opção
batchSize:0paramongoc_client_watch,mongoc_database_watchoumongoc_collection_watch, o comandoaggregatenão ignorará mais esta opção e a aplicará.Remove
bson_oid_init_sequence. Em vez disso, usebson_oid_init.Altera o tipo de devolução de
mongoc_server_description_hostdemongoc_host_list_t *paraconst mongoc_host_list_t *.Implementa as seguintes alterações na validação de credenciais de autenticação URI, que se aplicam ao criar um novo objeto
mongoc_uri_ta partir de uma string de conexão:Requer que os nomes de usuário não estejam vazios para todos os mecanismos de autenticação.
Valida os requisitos de especificação de nome de usuário e senha e retorna um erro do cliente para o mecanismo de autenticação especificado.
Para o mecanismo de autenticação
MONGODB-AWS, o valorauthSourceé padronizado como$external.Valida
authMechanismvalores e retorna um erro de cliente para valores inválidos.Valida valores
authMechanismPropertiese retorna um erro de cliente para propriedades inválidas para o mecanismo de autenticação especificado.Analisa corretamente os caracteres dois pontos (
:) dentro dos valoresauthMechanismProperties. Por exemplo, definirauthMechanismProperties=A:B,C:D:E,F:Gfez com que o driver analisasse o valor como{'A': 'B', 'C': 'D:E,F:G'}. Isso agora é analisado como{'A': 'B': 'C': 'D:E', 'F': 'G'}.
Gera um erro se você chamar
mongoc_bulk_operation_executeno mesmomongoc_bulk_operation_trepetidamente.Aplica consistentemente a convenção de chamada
__cdeclpara declarações de função na API pública.mongoc_client_set_ssl_optsignora ummongoc_client_tagrupado e registra um erro. Antes de exibir um cliente, usemongoc_client_pool_set_ssl_optspara definir as opções de TLS em ummongoc_client_pool_t.mongoc_client_set_ssl_stream_initiatorignora ummongoc_client_tagrupado e registra um erro.Renomeia os seguintes arquivos
pkg-config:libmongoc-1.0: renomeado paramongoc2libmongoc-static-1.0: renomeado paramongoc2-static
Remove o pacote
mongoc-1.0CMake. Em vez disso, usemongoce especifique uma versão ou intervalo de versões a ser importado, conforme mostrado no exemplo a seguir:find_package(mongoc 1.30...2.0) Renomeia os seguintes destinos importados:
mongo::mongoc_static: renomeado paramongoc::staticmongo::mongoc_shared: renomeado paramongoc::shared
Adiciona o destino
mongoc::mongoc, que aponta para a biblioteca estática ou biblioteca compartilhada dependendo do valor da opçãoMONGOC_DEFAULT_IMPORTED_LIBRARY_TYPECMake. Se você não definir esta opção e ambos os tipos de biblioteca estiverem disponíveis, omongoc::mongocutilizará a biblioteca estática.
Versão 1.29.0
libmongoc Alterações significativas no v1.29.0
A versão 1.29.0 do libmongoc inclui as seguintes alterações significativas:
Elimina o suporte para o Visual Studio 2013
Aumenta a versão necessária da dependência
libmongocryptpara 1.12.0 para oferecer suporte ao recurso de criptografia em execução
Versão 1.28.0
alterações significativas no v1.28.0
A versão 1.28.0 do libbson inclui as seguintes alterações significativas:
Remove a detecção e o uso automáticos de
ccacheRemove
Mongo_USE_CCACHE
libmongoc Alterações significativas no v1.28.0
A versão 1.28.0 do libmongoc inclui as seguintes alterações significativas:
Aumenta a versão mínima do protocolo de conexão de
6para7Aumenta a versão
libmongocryptnecessária para v1.11.0 para oferecer suporte à criptografia em execução
Versão 1.27.0
libmongoc Alterações significativas no v1.27.0
A versão 1.27.0 do libmongoc inclui as seguintes alterações significativas:
Aumenta a versão necessária do libmongocrypt para 1.10.0 para oferecer suporte à criptografia em execução. Isso corresponde à opção CMake
ENABLE_CLIENT_SIDE_ENCRYPTION.
Versão 1.26.2
libmongoc Alterações significativas no v1.26.2
A versão 1.26.2 do libmongoc inclui as seguintes alterações significativas:
Por padrão, desabilita o carregamento de plugin com Cyrus SASL no Windows. Para reativar, defina a opção CMake
CYRUS_PLUGIN_PATH_PREFIXpara o prefixo de caminho absoluto dos plug-ins Cyrus SASL.
Versão 1.24
libmongoc Alterações significativas no v1.24
A versão 1.24 do libmongoc inclui as seguintes alterações significativas:
Requer a versão 7.0 e posterior do MongoDB Server para usar a Queryable Encryption
Alterações na compatibilidade da versão do servidor
Uma alteração de compatibilidade de versão do servidor é uma modificação no driver que descontinua o suporte para um conjunto de versões do Servidor MongoDB.
O driver interrompe o suporte para uma versão do Servidor MongoDB após atingir o fim da vida útil (EOL).
Para saber mais sobre o suporte do MongoDB para produtos EOL, consulte a Política de Suporte Legado.