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 de C++ sea compatible con las versiones de MongoDB Server a las que se conecta su aplicación y con la versión estándar de C++ con la que compila su aplicación. Para obtener información sobre la compatibilidad de versiones, consulte Compatibilidad.
Aborde cualquier cambio importante entre la versión del controlador que utiliza su aplicación y la versión de actualización planificada en la sección Cambios importantes.
Tip
Para garantizar la compatibilidad entre las versiones de MongoDB Server al actualizar las versiones del controlador, utilice el API estable.
Cambios radicales
Nota
El controlador de C++ sigue el control de versiones semántico. El controlador puede afectar la compatibilidad del sistema de compilación o de los paquetes en cualquier versión. Las versiones de parches pueden revertir cambios accidentales que afecten la API.
Para obtener más información,consulte Versiones de API y ABI.
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.
Ejemplo
Actualización desde la versión 3.0
Si está actualizando el controlador C++ de la versión 3.0 a la versión 3.10, aborde todos los cambios importantes enumerados para las versiones 3.1 a 3.10, si los hay.
Cambios importantes en la versión 3.11
Se elimina el soporte para MongoDB Server v3.6.
Se requiere MongoDB C Driver v1.28.0 o posterior.
Si el
ENABLE_TESTSSi la opción de configuración está establecida enON, se requiere C++14 o posterior. Puede optar por no cumplir con el requisito de C++14 deshabilitando las pruebas conENABLE_TESTS=OFFdurante la configuración de CMake.Elimina la exportación de las siguientes funciones miembro privadas en la ABI bsoncxx:
bsoncxx::v_noabi::types::bson_value::value::value(const uint8_t*, uint32_t, uint32_t, uint32_t) bsoncxx::v_noabi::types::bson_value::view::_init(void*) bsoncxx::v_noabi::types::bson_value::view::view(const uint8_t*, uint32_t, uint32_t, uint32_t) bsoncxx::v_noabi::types::bson_value::view::view(void*) Elimina la exportación de las siguientes funciones miembro privadas en la ABI mongocxx:
mongocxx::v_noabi::options::change_stream::as_bson() mongocxx::v_noabi::options::aggregate::append(bsoncxx::v_noabi::builder::basic::document&) mongocxx::v_noabi::options::index::storage_options() Declare todos los símbolos de funciones exportadas con
__cdeclal compilar con MSVC. Este cambio es crucial para la ABI si utiliza una convención de llamada predeterminada alternativa al compilar proyectos.
Cambios importantes en la versión 3.10
Esta versión del controlador introduce los siguientes cambios importantes:
Elimina el soporte para
find_package(libbsoncxx)yfind_package(libmongocxx). Utilicefind_package(bsoncxx)yfind_package(mongocxx)en su lugar.Se elimina la compatibilidad con las variables
LIBBSONCXX_*yLIBMONGOCXX_*de CMake proporcionadas por los archivos de configuración del paquete CMake antiguo. En su lugar, se utilizan los destinosmongo::bsoncxx_*ymongo::mongocxx_*de CMake.Elimina la biblioteca estándar experimental de C++ (
BSONCXX_POLY_USE_STD_EXPERIMENTAL) como una opción de polyfill.
Cambios importantes en la versión 3.9
Esta versión del controlador introduce los siguientes cambios importantes:
Elimina la compatibilidad con los objetivos exportados del árbol de compilación del proyecto CMake
Se elimina la compatibilidad con macOS 10.14, macOS 10.15 y Ubuntu 14.04
Requiere el controlador MongoDB C v1.25.0 o posterior
Requiere CMake v3.15 o posterior
Versión 3.8 y anteriores
Para versiones de drivers 3.8 y anteriores, consulta las notas de la versión y los tickets de JIRA asociados para cada versión en GitHub.