Docs Menu
Docs Home
/ /

Actualizar versiones de los controladores

Esta página describe los cambios que debe realizar en su aplicación cuando actualiza a una nueva versión del controlador C.

Antes de actualizar, realice las siguientes acciones:

  • Asegúrese de que la nueva versión del controlador C sea compatible con las versiones de MongoDB Server a las que se conecta su aplicación y con la plataforma en la que se ejecuta. Para obtener información sobre la compatibilidad de versiones, consulte Página decompatibilidad del controlador C.

  • Aborde cualquier cambio importante entre la versión actual del controlador que usa su aplicación y la versión de actualización planificada en la sección Cambios importantes. Para obtener más información sobre los cambios de compatibilidad de versiones de MongoDB Server, consulte la sección Cambios de compatibilidad de versiones de Server.

Tip

Para minimizar la cantidad de cambios que requiere su aplicación al actualizar las versiones de los controladores en el futuro, utilice la API estable. Para obtener más información, consulte Guíade API estable.

Nota

El driver en C sigue el versionado semántico. El driver puede perjudicar los sistemas de compilación o la compatibilidad de paquetes en cualquier versión. Los lanzamientos de parches pueden revertir cambios disruptivos accidentales en la API.

Un cambio importante es un cambio en una convención o comportamiento que se inicia en una versión específica del controlador. Este tipo de cambio puede impedir el correcto funcionamiento de la aplicación si no se soluciona antes de actualizar el controlador.

Los cambios importantes de esta sección se clasifican según la versión del controlador que los introdujo. Al actualizar las versiones del controlador, tenga en cuenta todos los cambios importantes entre la versión actual y la versión de actualización.

El controlador C consta de dos bibliotecas: libbson y libmongoc. Las secciones de esta guía describen los cambios importantes incluidos en cada biblioteca.

Ejemplo

Actualizando a la versión 2.0.0

Si está actualizando el controlador C de la versión 1.x a la versión 2.0.0, aborde todos los cambios importantes que se enumeran para las versiones 1.x hasta la versión 2.0.0inclusive.

La versión 2.2.0 de libbson incluye el siguiente cambio importante:

  • Elimina la compatibilidad con Visual Studio 2015. La versión mínima compatible es Visual Studio 2017.

La versión 2.2.0 de libmongoc incluye el siguiente cambio importante:

  • Elimina la compatibilidad con Visual Studio 2015. La versión mínima compatible es Visual Studio 2017.

La versión 2.1.0 de libbson incluye los siguientes cambios importantes:

  • Elimina el soporte para Debian 9 y Debian 10.

  • El proyecto CMake establece una versión máxima de la política de CMake de 4.0. Las versiones anteriores del controlador no establecen esta versión máxima. Esto podría afectar al sistema de compilación, dependiendo de la versión y las opciones de configuración de CMake.

La versión 2.1.0 de libmongoc incluye los siguientes cambios importantes:

  • Elimina el soporte para Debian 9 y Debian 10.

  • El proyecto CMake establece una versión máxima de la política de CMake de 4.0. Las versiones anteriores del controlador no establecen esta versión máxima. Esto podría afectar al sistema de compilación, dependiendo de la versión y las opciones de configuración de CMake.

La versión 2.0.0 de libbson incluye los siguientes cambios importantes:

  • Reduce el valor de la macro BSON_ERROR_BUFFER_SIZE de 504 a 503 para reservar el byte final para uso interno.

  • Renombra los siguientes archivos pkg-config:

    • libbson-1.0: Renombrado a bson2

    • libbson-static-1.0: Renombrado a bson2-static

  • Elimina el paquete CMake bson-1.0. En su lugar, utilice bson y especifique la versión o el rango de versiones que se importará, como se muestra en el siguiente ejemplo:

    find_package(bson 1.30...2.0)
  • Renombra los siguientes objetivos importados:

    • mongo::bson_static: Renombrado a bson::static

    • mongo::bson_shared: Renombrado a bson::shared

  • Añade el destino bson::bson, que apunta a la biblioteca estática o compartida, según el valor de la opción BSON_DEFAULT_IMPORTED_LIBRARY_TYPE de CMake. Si no se configura esta opción y ambos tipos de biblioteca están disponibles, bson::bson usa la biblioteca estática.

La versión 2.0 de libmongoc incluye los siguientes cambios importantes:

  • Si pasa la opción batchSize:0 a mongoc_client_watch, mongoc_database_watch o mongoc_collection_watch, el comando aggregate ya no ignora esta opción y la aplica.

  • Elimina bson_oid_init_sequence. En su lugar, utiliza bson_oid_init.

  • Cambia el tipo de devolución de mongoc_server_description_host de mongoc_host_list_t * a const mongoc_host_list_t *.

  • Implementa los siguientes cambios en la validación de credenciales de autenticación de URI, que se aplican al crear un nuevo objeto mongoc_uri_t a partir de una cadena de conexión:

    • Requiere que los nombres de usuario no estén vacíos para todos los mecanismos de autenticación.

    • Valida los requisitos de especificación de nombre de usuario y contraseña y devuelve un error de cliente para el mecanismo de autenticación especificado.

    • Para el mecanismo de autenticación MONGODB-AWS, el valor authSource predeterminado es $external.

    • Valida valores authMechanism y devuelve un error de cliente para valores no válidos.

    • Valida valores authMechanismProperties y devuelve un error de cliente para propiedades no válidas para el mecanismo de autenticación especificado.

    • Analiza correctamente los dos puntos (:) dentro de valores authMechanismProperties. Por ejemplo, al configurar authMechanismProperties=A:B,C:D:E,F:G, el controlador lo interpretaba como {'A': 'B', 'C': 'D:E,F:G'}. Ahora se interpreta como {'A': 'B': 'C': 'D:E', 'F': 'G'}.

  • Genera un error si llamas a mongoc_bulk_operation_execute en el mismo mongoc_bulk_operation_t repetidamente.

  • Aplica consistentemente la convención de llamada __cdecl a las declaraciones de funciones en la API pública.

  • mongoc_client_set_ssl_opts ignora un mongoc_client_t agrupado y registra un error. Antes de extraer un cliente, use mongoc_client_pool_set_ssl_opts para configurar las opciones de TLS en un mongoc_client_pool_t.

  • mongoc_client_set_ssl_stream_initiator ignora un mongoc_client_t agrupado y registra un error.

  • Renombra los siguientes archivos pkg-config:

    • libmongoc-1.0: Renombrado a mongoc2

    • libmongoc-static-1.0: Renombrado a mongoc2-static

  • Elimina el paquete CMake mongoc-1.0. En su lugar, utilice mongoc y especifique la versión o el rango de versiones que se importará, como se muestra en el siguiente ejemplo:

    find_package(mongoc 1.30...2.0)
  • Renombra los siguientes objetivos importados:

    • mongo::mongoc_static: Renombrado a mongoc::static

    • mongo::mongoc_shared: Renombrado a mongoc::shared

  • Añade el destino mongoc::mongoc, que apunta a la biblioteca estática o compartida, según el valor de la opción MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE de CMake. Si no se configura esta opción y ambos tipos de biblioteca están disponibles, mongoc::mongoc usa la biblioteca estática.

La versión 1.29.0 de libmongoc incluye los siguientes cambios importantes:

  • Elimina el soporte para Visual Studio 2013

  • Aumenta la versión requerida de la dependencia libmongocrypt a 1.12.0 para admitir la función de cifrado en uso

La versión 1.28.0 de libbson incluye los siguientes cambios importantes:

  • Elimina la detección y el uso automáticos de ccache

  • Elimina Mongo_USE_CCACHE

La versión 1.28.0 de libmongoc incluye los siguientes cambios importantes:

  • Aumenta la versión mínima del protocolo de cable de 6 a 7

  • Aumenta la versión libmongocrypt requerida a v1.11.0 para admitir el cifrado en uso

La versión 1.27.0 de libmongoc incluye los siguientes cambios importantes:

  • Aumenta la versión requerida de libmongocrypt a 1.10.0 para admitir el cifrado en uso. Esto corresponde a la opción ENABLE_CLIENT_SIDE_ENCRYPTION de CMake.

La versión 1.26.2 de libmongoc incluye los siguientes cambios importantes:

  • De forma predeterminada, se deshabilita la carga de complementos con Cyrus SASL en Windows. Para volver a habilitarla, configure la opción CYRUS_PLUGIN_PATH_PREFIX de CMake con el prefijo de la ruta absoluta de los complementos de Cyrus SASL.

La versión 1.24 de libmongoc incluye los siguientes cambios importantes:

  • Requiere la versión 7.0 y posteriores del servidor MongoDB para usar el cifrado consultable

Un cambio de compatibilidad de versión del servidor es una modificación del controlador que interrumpe el soporte para un conjunto de versiones de MongoDB Server.

El controlador deja de brindar soporte para una versión de MongoDB Server una vez que alcanza el final de su vida útil (EOL).

Para aprender más sobre el soporte de MongoDB para productos EOL, consulta la Política de Soporte heredado.

Volver

Notas de versión

En esta página