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 aplicativo se conecta e com a plataforma em que seu aplicativo é executado. Para obter informações sobre compatibilidade de versão, consulte a página Compatibilidade do driver C.
Address any breaking changes between the current driver version your application uses and your planned upgrade version in the Breaking Changes section. To learn more about MongoDB Server release compatibility changes, see the Server Release Compatibility Changes section.
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 Guia de API estável.
Mudanças de última hora
Observação
The C driver follows semantic versioning. The driver may break build systems or package compatibility in any release. Patch releases may revert accidental API breaking changes.
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.4.0
Alterações significativas em libmongoc
A versão 2.4.0 do libmongoc inclui a seguinte alteração interruptiva:
- Aumenta a versão
libmongocryptnecessária de 1.15.1 para 1.20.0 para oferecer suporte à criptografia em execução. Esse requisito corresponde à opçãoENABLE_CLIENT_SIDE_ENCRYPTIONdo CMake.
Versão 2.3.0
Alterações significativas em libmongoc
A versão 2.3.0 do libmongoc inclui a seguinte alteração interruptiva:
- Remove o suporte para macOS 13 e anteriores. Use macOS 14 ou mais recente.
Versão 2.2.0
alterações significativas no libbson
A versão 2.2.0 do libbson inclui a seguinte alteração interruptiva:
- Remove o suporte para o Visual Studio 2015. A versão mínima suportada é o Visual Studio 2017.
Alterações significativas em libmongoc
A versão 2.2.0 do libmongoc inclui a seguinte alteração interruptiva:
- Remove o suporte para o Visual Studio 2015. A versão mínima suportada é o Visual Studio 2017.
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.