Menu Docs
Página inicial do Docs
/ / /
Driver C

Atualizar versões do driver

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.

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

A versão 2.0.0 do libbson inclui as seguintes alterações significativas:

  • Reduz o valor da macro BSON_ERROR_BUFFER_SIZE de 504 para 503 para reserva o byte final para uso interno.

  • Renomeia os seguintes arquivos pkg-config:

    • libbson-1.0: renomeado para bson2

    • libbson-static-1.0: renomeado para bson2-static

  • Remove o pacote bson-1.0 CMake. Em vez disso, use bson 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 para bson::static

    • mongo::bson_shared: renomeado para bson::shared

  • Adiciona o destino bson::bson, que aponta para a biblioteca estática ou biblioteca compartilhada dependendo do valor da opção BSON_DEFAULT_IMPORTED_LIBRARY_TYPE CMake. Se você não definir esta opção e ambos os tipos de biblioteca estiverem disponíveis, o bson::bson utilizará a biblioteca estática.

A versão 2.0 do libmongoc inclui as seguintes alterações significativas:

  • Se você passar a opção batchSize:0 para mongoc_client_watch, mongoc_database_watch ou mongoc_collection_watch, o comando aggregate não ignorará mais esta opção e a aplicará.

  • Remove bson_oid_init_sequence. Em vez disso, use bson_oid_init.

  • Altera o tipo de devolução de mongoc_server_description_host de mongoc_host_list_t * para const 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 valor authSource é 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 valores authMechanismProperties. Por exemplo, definir authMechanismProperties=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 mesmo mongoc_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 um mongoc_client_t agrupado e registra um erro. Antes de exibir um cliente, use mongoc_client_pool_set_ssl_opts para definir as opções de TLS em um mongoc_client_pool_t.

  • mongoc_client_set_ssl_stream_initiator ignora um mongoc_client_t agrupado e registra um erro.

  • Renomeia os seguintes arquivos pkg-config:

    • libmongoc-1.0: renomeado para mongoc2

    • libmongoc-static-1.0: renomeado para mongoc2-static

  • Remove o pacote mongoc-1.0 CMake. Em vez disso, use mongoc 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 para mongoc::static

    • mongo::mongoc_shared: renomeado para mongoc::shared

  • Adiciona o destino mongoc::mongoc, que aponta para a biblioteca estática ou biblioteca compartilhada dependendo do valor da opção MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE CMake. Se você não definir esta opção e ambos os tipos de biblioteca estiverem disponíveis, o mongoc::mongoc utilizará a biblioteca estática.

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

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

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 para 7

  • Aumenta a versão libmongocrypt necessária para v1.11.0 para oferecer suporte à criptografia em execução

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.

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.

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

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.

Voltar

Compatibilidade

Nesta página