Overview
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.
Cambios radicales
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.
Versión 2.2.0
Cambios importantes de libbson
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.
Cambios importantes en libmongoc
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.
Versión 2.1.0
Cambios importantes de libbson
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.
Cambios importantes en libmongoc
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.
Versión 2.0.0
Cambios importantes en libbson en v2.0.0
La versión 2.0.0 de libbson incluye los siguientes cambios importantes:
Reduce el valor de la macro
BSON_ERROR_BUFFER_SIZEde504a503para reservar el byte final para uso interno.Renombra los siguientes archivos
pkg-config:libbson-1.0: Renombrado abson2libbson-static-1.0: Renombrado abson2-static
Elimina el paquete CMake
bson-1.0. En su lugar, utilicebsony 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 abson::staticmongo::bson_shared: Renombrado abson::shared
Añade el destino
bson::bson, que apunta a la biblioteca estática o compartida, según el valor de la opciónBSON_DEFAULT_IMPORTED_LIBRARY_TYPEde CMake. Si no se configura esta opción y ambos tipos de biblioteca están disponibles,bson::bsonusa la biblioteca estática.
Cambios importantes en libmongoc en v2.0.0
La versión 2.0 de libmongoc incluye los siguientes cambios importantes:
Si pasa la opción
batchSize:0amongoc_client_watch,mongoc_database_watchomongoc_collection_watch, el comandoaggregateya no ignora esta opción y la aplica.Elimina
bson_oid_init_sequence. En su lugar, utilizabson_oid_init.Cambia el tipo de devolución de
mongoc_server_description_hostdemongoc_host_list_t *aconst 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_ta 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 valorauthSourcepredeterminado es$external.Valida valores
authMechanismy devuelve un error de cliente para valores no válidos.Valida valores
authMechanismPropertiesy devuelve un error de cliente para propiedades no válidas para el mecanismo de autenticación especificado.Analiza correctamente los dos puntos (
:) dentro de valoresauthMechanismProperties. Por ejemplo, al configurarauthMechanismProperties=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_executeen el mismomongoc_bulk_operation_trepetidamente.Aplica consistentemente la convención de llamada
__cdecla las declaraciones de funciones en la API pública.mongoc_client_set_ssl_optsignora unmongoc_client_tagrupado y registra un error. Antes de extraer un cliente, usemongoc_client_pool_set_ssl_optspara configurar las opciones de TLS en unmongoc_client_pool_t.mongoc_client_set_ssl_stream_initiatorignora unmongoc_client_tagrupado y registra un error.Renombra los siguientes archivos
pkg-config:libmongoc-1.0: Renombrado amongoc2libmongoc-static-1.0: Renombrado amongoc2-static
Elimina el paquete CMake
mongoc-1.0. En su lugar, utilicemongocy 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 amongoc::staticmongo::mongoc_shared: Renombrado amongoc::shared
Añade el destino
mongoc::mongoc, que apunta a la biblioteca estática o compartida, según el valor de la opciónMONGOC_DEFAULT_IMPORTED_LIBRARY_TYPEde CMake. Si no se configura esta opción y ambos tipos de biblioteca están disponibles,mongoc::mongocusa la biblioteca estática.
Versión 1.29.0
Cambios importantes en libmongoc en v1.29.0
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
libmongocrypta 1.12.0 para admitir la función de cifrado en uso
Versión 1.28.0
Cambios importantes en libbson en v1.28.0
La versión 1.28.0 de libbson incluye los siguientes cambios importantes:
Elimina la detección y el uso automáticos de
ccacheElimina
Mongo_USE_CCACHE
Cambios importantes en libmongoc en v1.28.0
La versión 1.28.0 de libmongoc incluye los siguientes cambios importantes:
Aumenta la versión mínima del protocolo de cable de
6a7Aumenta la versión
libmongocryptrequerida a v1.11.0 para admitir el cifrado en uso
Versión 1.27.0
Cambios importantes en libmongoc en v1.27.0
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_ENCRYPTIONde CMake.
Versión 1.26.2
Cambios importantes en libmongoc en v1.26.2
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_PREFIXde CMake con el prefijo de la ruta absoluta de los complementos de Cyrus SASL.
Versión 1.24
Cambios importantes en libmongoc en v1.24
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
Cambios de compatibilidad de versiones del servidor
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.