Overview
Descubra qué hay de nuevo en:
Novedades en la versión 4.2
Advertencia
cambio disruptivo
Controlador de C++ v4.2 contiene cambios disruptivos. Para más información, consulte Versión 4.2 en la guía de actualización de versiones de controladores.
La 4.2 versión de driver incluye las siguientes funcionalidades:
Introduce el ABI estable del controlador de C++ (v1.0) para uso experimental. Como parte de este cambio, se realizaron importantes cambios disruptivos en la ABI inestable. Cuando actualices a la v4.2 del controlador, te recomendamos migrar al uso del ABI Estable en tu aplicación.
Exporta correctamente el
storage_engine() constenmongocxx::v_noabi::options::indexusando macros de exportación mongocxx en lugar de los macros de exportación bsoncxx.Se añaden los asistentes para flujos de cambios
mongocxx::v1::change_stream::next()ymongocxx::v1::change_stream::try_next()para facilitar la iteración de flujos de cambios.Añade compatibilidad experimental para índices de texto de encriptación en uso mediante
mongocxx::v1::text_options.Se elimina el soporte para MongoDB Server 4.2. Para obtener más información, consulta los cronogramas de ciclo de vida del software de MongoDB.
Remueve la compatibilidad con macOS 11 y macOS 12 (en desuso desde la versión4.1).
Renombra los archivos de configuración de paquetes CMake para usar el patrón
<name>Config.cmakey<name>ConfigVersion.cmake, para mantener la coherencia con MongoDB C Driver 2.0.0 y versiones más nuevas.Obsoleta
mongocxx::v_noabi::instance::current(). Recomendamos instanciar una variable no globalinstanceque sea válida para todas las operacionesmongocxx, como se muestra en el siguiente código:int main() { mongocxx::instance instance; ... } Para implementaciones alternativas, consulta el Registro de cambios del controlador 4.2 en el repositorio de GitHub
mongo-cxx-driver.
La versión incluye la siguiente corrección de errores:
Corrige un problema en el que el controlador arrojaba incorrectamente una excepción al comparar un resultado
mongocxx::result::insert_manycon identificadores que no son ObjectId.
Para aprender más sobre esta versión, consulta las Notas de la versión v4.2 en GitHub.
Novedades en 4.1
Advertencia
cambio disruptivo
Controlador C++ v4.1 contiene cambios disruptivos. Para obtener más información, consulte Versión 4.1 en la guía Actualizar versiones de controladores.
La versión v4.1 del controlador incluye las siguientes funcionalidades:
Obsoleta el método
storage_options()por el nuevo métodostorage_engine()enmongocxx::v_noabi::options::indexAgrega soporte para el tipo de vector binario BSON.
Para obtener más información, consulta los siguientes recursos:
Binary Data BSON types en el manual de MongoDB Server.
Vector Binario BSON ejemplo de uso en GitHub
Corrige el bug de la versión de la API del driver C observado en la versión v4.0
Agrega un cambio a la opción de configuración por defecto
ENABLE_TESTSque se anunció originalmente para la v4.0. Para obtener más información, consulta la descripción del cambio disruptivo en la página de actualización.
Para aprender más sobre esta versión, consulta las Notas de la versión v4.1 en GitHub.
Novedades en la 4.0
Advertencia
cambio disruptivo
Controlador C++ v4.0 contiene cambios disruptivos. Para obtener más información, consulte Versión 4.0 en la guía Actualizar versiones de controladores.
La versión v4.0 del controlador incluye las siguientes funcionalidades:
Agrega un método getter para el campo
start_at_operation_timede una instanciamongocxx::options::change_stream.
La versión incluye el siguiente error:
CMake podría configurar incorrectamente la versión de la API para un driver de C de descarga automática a
0.0.0cuando el proyecto de CMake se configura más de una vez o al mismo valor que la versión de la API del driver de C++ cuandoBUILD_VERSIONse configura explícitamente durante la configuración inicial. CMake solo descargará automáticamente el driver C junto con el driver C++ si no puede encontrar una instalación existente de driver C utilizandofind_package(). Este error se corregirá en una próxima actualización de parche.
Para aprender más sobre esta versión, consulta las Notas de la versión v4.0 en GitHub.
Novedades en 3.11
Advertencia
cambio disruptivo
Controlador C++ v3.11 contiene cambios disruptivos. Para obtener más información, consulte Versión 3.11 en la guía Actualizar versiones de controladores.
La versión v3.11 del controlador incluye las siguientes funcionalidades:
Agrega soporte para MongoDB Server v8.0.
Agrega soporte para consultas de rango de Queryable Encryption. Para utilizar esta funcionalidad, tu aplicación debe conectarse a MongoDB Server 8.0 o posterior. Para obtener más información sobre Queryable Encryption, consulta Queryable Encryption en el manual de MongoDB Server.
Agrega la función nodo
empty()paramongocxx::v_noabi::bulk_write.
La versión incluye el siguiente error:
CMake podría configurar incorrectamente la versión de la API para un driver de C de descarga automática a
0.0.0cuando el proyecto de CMake se configura más de una vez o al mismo valor que la versión de la API del driver de C++ cuandoBUILD_VERSIONse configura explícitamente durante la configuración inicial. CMake solo descargará automáticamente el driver C junto con el driver C++ si no puede encontrar una instalación existente de driver C utilizandofind_package(). Este error se corregirá en una próxima actualización de parche.
Para aprender más sobre esta versión, consulta las Notas de la versión v3.11 en GitHub.
Novedades en 3.10
Advertencia
cambio disruptivo
Controlador C++ v3.10 contiene cambios disruptivos. Para obtener más información, consulte Versión 3.10 en la guía Actualizar versiones de controladores.
El v3.10.0 la versión de driver incluye las siguientes nuevas funcionalidades:
Agrega encabezados reenvío que proporcionan declaraciones no definitorias de
bsoncxxymongocxxtipos de clase. El driver no admite declaraciones adelantadas definidas por el usuario de ninguna entidad de la librería. Para obtener la declaración o definición de una entidad de la librería, incluye siempre el encabezado correspondiente.La opción CMake
ENABLE_BSONCXX_USE_POLY_IMPLSpermite seleccionar implementacionesbsoncxxde polyfills de C++17 por defecto cuando no se solicita ninguna librería polyfill. Esta opción esOFFpor defecto.La opción CMake
BSONCXX_POLY_USE_IMPLSpermite seleccionarbsoncxximplementaciones de polirrellenos C++17 en lugar de librerías externas o la librería estándar de C++. Esta opción estáOFFpor defecto.Los espacios de nombres
bsoncxx::v_noabiymongocxx::v_noabiya no se declaran en línea. Las declaraciones del espacio de nombres raíz siguen siendo compatibles y se espera que sigan siendo equivalentes a sus definiciones anteriores. Por ejemplo,bsoncxx::documentsigue siendo equivalente absoncxx::v_noabi::document, ymongocxx::clientsigue siendo equivalente amongocxx::v_noabi::client.Por defecto, cuando los nombres de archivo de las librerías se compilan con MSVC (como lo detecta la variable
MSVCde CMake), se incrustan con una string de etiqueta ABI. Estas cadenas son similares a las siguientes:bsoncxx-v_noabi-rhs-x64-v142-md.lib Para deshabilitar este comportamiento, configurá
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFFcomo parte de tu configuración de CMake.La string de la etiqueta ABI también se puede embutir en los nombres de archivos de metadatos de pkg-config, de manera similar a lo siguiente:
libbsoncxx-v_noabi-rhs-x64-v142-md.pc Para activar este comportamiento, establece
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ONyENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ONcomo parte de tu configuración de CMake.
Para aprender más sobre esta versión, consulta las Notas de la versión v3.10 en GitHub.
Novedades en 3.9
Advertencia
cambio disruptivo
Controlador C++ v3.9 contiene cambios disruptivos. Para obtener más información, consulte Versión 3.9 en la guía Actualizar versiones de controladores.
La versión v3.9 del controlador incluye las siguientes funcionalidades:
La imagen del contenedor del driver C++ ya está disponible en Docker hub.
El driver descarga automáticamente la dependencia del driver C de MongoDB si no la proporcionas.
El driver ya no compila pruebas como parte del objetivo
all. Para compilar pruebas, configureBUILD_TESTING=ONcomo parte de su configuración de CMake.El driver utiliza el módulo
FetchContentpara descargar y compilar la librería polyfill MNMLSTC Core, si no la proporciona el sistema, en lugar del móduloExternalProject. Tampoco parchea las directivasincludeen los encabezados de MNMLSTC Core.Agrega la opción CMake
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX. Si esta opción está configurada enTRUE, la opciónCMAKE_INSTALL_PREFIXestá configurada por defecto en el directorio de compilación. El valor por defecto de esta opción esTRUE.Agrega una API para gestionar los índices de MongoDB Search.
Añade el recurso
VERSIONINFOabsoncxx.dllymongocxx.dll.Documenta explícitamente que lanzar una excepción desde una función de retorno de la APM es un comportamiento no definido.
No instala de forma prematura los headers de MNMLSTC Core durante el paso de compilación con CMake.
Requiere que se encuentre un paquete CMake del controlador C de MongoDB mediante
find_dependency()para todas las configuraciones de paquetes del controlador C++ instaladas.
Para aprender más sobre esta versión, consulta las Notas de la versión v3.9 en GitHub.