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çãoAlteraçõ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 Guia de API estável.
Mudanças de última hora
Observação
O driver C segue o 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.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_SIZE
de504
para503
para reserva o byte final para uso interno.Renomeia os seguintes arquivos
pkg-config
:libbson-1.0
: renomeado parabson2
libbson-static-1.0
: renomeado parabson2-static
Remove o pacote
bson-1.0
CMake. Em vez disso, usebson
e 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::static
mongo::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_TYPE
CMake. Se você não definir esta opção e ambos os tipos de biblioteca estiverem disponíveis, obson::bson
utilizará 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:0
paramongoc_client_watch
,mongoc_database_watch
oumongoc_collection_watch
, o comandoaggregate
nã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_host
demongoc_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_t
a 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
authMechanism
valores e retorna um erro de cliente para valores inválidos.Valida valores
authMechanismProperties
e 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:G
fez 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_execute
no mesmomongoc_bulk_operation_t
repetidamente.Aplica consistentemente a convenção de chamada
__cdecl
para declarações de função na API pública.mongoc_client_set_ssl_opts
ignora ummongoc_client_t
agrupado e registra um erro. Antes de exibir um cliente, usemongoc_client_pool_set_ssl_opts
para definir as opções de TLS em ummongoc_client_pool_t
.mongoc_client_set_ssl_stream_initiator
ignora ummongoc_client_t
agrupado e registra um erro.Renomeia os seguintes arquivos
pkg-config
:libmongoc-1.0
: renomeado paramongoc2
libmongoc-static-1.0
: renomeado paramongoc2-static
Remove o pacote
mongoc-1.0
CMake. Em vez disso, usemongoc
e 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::static
mongo::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_TYPE
CMake. Se você não definir esta opção e ambos os tipos de biblioteca estiverem disponíveis, omongoc::mongoc
utilizará 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
libmongocrypt
para 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
ccache
Remove
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
6
para7
Aumenta a versão
libmongocrypt
necessá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_PREFIX
para 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.