Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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, realiza 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.

  • Aborda cualquier cambio disruptivo entre la versión actual del driver que utiliza la aplicación y tu versión de actualización planificada en la sección Cambios disruptivos. Para aprender más sobre los cambios de compatibilidad de las versiones de MongoDB Server, consulta la sección Cambios de compatibilidad del lanzamiento del servidor.

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 Stable API guide.

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 disruptivo es un cambio en una convención o comportamiento que empieza a partir de una versión específica del driver. Este tipo de cambios puede evitar que tu aplicación funcione correctamente si no se abordan antes de actualizar el controlador.

Los cambios disruptivos en esta sección se categorizan según la versión del driver que los ha introducido. Al actualizar las versiones del driver, debes abordar todos los cambios disruptivos entre la versión actual y la versión de actualización.

El controlador C consta de dos librerías: libbson y libmongoc. Las secciones de este guía describen los cambios disruptivos que se incluyen en cada librería.

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 el soporte para 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 el soporte para 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 disruptivos:

  • Remueve 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 disruptivos:

  • Remueve 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 disruptivos:

  • 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 targets importados:

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

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

  • Agrega el objetivo bson::bson, que apunta a la librería estática o a la librería compartida dependiendo del valor de la opción BSON_DEFAULT_IMPORTED_LIBRARY_TYPE de CMake. Si no configura esta opción y ambos tipos de librerías están disponibles, bson::bson utiliza la librería estática.

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

  • 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.

  • Remueve bson_oid_init_sequence. En su lugar, use 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 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 del cliente para el mecanismo de autenticación especificado.

    • Para el mecanismo de autenticación MONGODB-AWS, el valor de authSource se establece por defecto en $external.

    • Valida authMechanism valores y retorna un error del cliente para valores no válidos.

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

    • Analiza correctamente los caracteres de dos puntos (:) dentro de los valores authMechanismProperties. Por ejemplo, establecer authMechanismProperties=A:B,C:D:E,F:G hizo que el controlador analizará el valor como {'A': 'B', 'C': 'D:E,F:G'}. Esto ahora se analiza como {'A': 'B': 'C': 'D:E', 'F': 'G'}.

  • Se genera un error si se llama a mongoc_bulk_operation_execute en el mismo mongoc_bulk_operation_t repetidamente.

  • Aplica de manera consistente la convención de llamadas __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 targets importados:

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

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

  • Agrega el objetivo mongoc::mongoc, que apunta a la librería estática o a la librería compartida dependiendo del valor de la opción MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE de CMake. Si no configura esta opción y ambos tipos de librerías están disponibles, mongoc::mongoc utiliza la librería estática.

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

  • Descarta la compatibilidad con Visual Studio 2013

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

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

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

  • remover Mongo_USE_CCACHE

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

  • Eleva la versión mínima del protocolo de conexión de 6 a 7

  • Eleva la versión requerida de libmongocrypt a v1.11.0 para soportar Encriptación en Uso

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

  • Eleva la versión requerida de libmongocrypt a 1.10.0 para dar soporte al cifrado en uso. Esto corresponde a la opción CMake ENABLE_CLIENT_SIDE_ENCRYPTION.

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

  • Por defecto, desactiva la carga de plugins con Cyrus SASL en Windows. Para volver a habilitar, configure la opción de CMake CYRUS_PLUGIN_PATH_PREFIX en el prefijo de ruta absoluta de los complementos de Cyrus SASL.

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

  • 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 al driver que descontinúa el soporte para un conjunto de versiones de MongoDB Server.

El driver interrumpe el soporte para una versión de MongoDB Server después de que esta llegue a su final de 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