NOVIDADES
Nesta página
Visão geral
Descubra as novidades de cada versão:
Tipos de alterações significativas
Novas versões do driver C++ podem introduzir os seguintes tipos de alterações significativas:
As alterações da API referem-se à API das bibliotecas de drivers C++ . Essas alterações são acompanhados por um aumento na versão principal da API. Talvez seja necessário editar o código-fonte C++ em seu projeto para resolver essas alterações.
Exemplo
Remove a declaração da função
v1::func()
. (A definição ainda é fornecida para compatibilidade com ABI.)Remove a função embutida
v_noabi::func()
.Remove
v_noabi::func()
.Altera a redeclaração de
bsoncxx::foo
dev1::foo
parav2::foo
. Para continuar usando a interface antiga, qualifiquebsoncxx::foo
comobsoncxx::v1::foo
.
As alterações da ABI referem-se à ABI das bibliotecas de drivers C++ . Essas alterações são acompanhados por um aumento na versão da ABI e também podem ser acompanhados por um aumento na versão principal da API. Talvez seja necessário reconstruir seu projeto ou editar seu código-fonte C++ para resolver essas alterações.
A estabilidade da ABI não é suportada para símbolos correspondentes a entidades declaradas no namespace
v_noabi
. As alterações significativas para esses símbolos não são necessariamente acompanhados por um aumento na versão da ABI.Exemplo
Remove o símbolo exportado
v_noabi::func()
.Remove o símbolo exportado
v1::func()
.Remove os símbolos exportados para
v1::type
.
As alterações do sistema de compilação estão relacionadas ao sistema de compilação ou à embalagem das bibliotecas de drivers C++ . Essas alterações não são necessariamente acompanhas por um aumento na versão principal da API ou um aumento na versão da ABI. Para resolver essas alterações, talvez seja necessário modificar as configurações do sistema de compilação ou atualizar as configurações de gerenciamento de pacote ou dependências do projeto. Talvez você também precise modificar ou reconstruir seu código-fonte C++ .
Exemplo
Remove a variável de configuração do
ENABLE_FOO
.Altera o valor padrão da variável de configuração
ENABLE_BAR
deOFF
paraON
.Suporte de drops para a plataforma A, compilador B ou arquitetura C.
Novidades no 3.11
Aviso
Mudanças de última hora
O driver3.11 introduz as seguintes alterações significativas:
Elimina o suporte para o MongoDB Server v3.6.
Requer o Driver MongoDB C v1.28.0 ou posterior.
Remove a exportação das seguintes funções de membro privado na 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*)
Remove a exportação das seguintes funções de membro privado na 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 os símbolos de funções exportadas com
__cdecl
quando compilados com MSVC. Esta é uma alteração interruptiva de ABI se você usar uma convenção de chamada padrão alternativa ao construir projetos.
A versão do driver v3.11 inclui os seguintes novos recursos:
Adiciona suporte para MongoDB Server v8.0.
Adiciona suporte para queries de intervalo de Queryable Encryption . Para usar esse recurso, seu aplicativo deve se conectar ao MongoDB Server 8.0 ou posterior. Para obter mais informações sobre Queryable Encryption, consulte Queryable Encryption no manual do MongoDB Server .
Adiciona a função de membro
empty()
paramongocxx::v_noabi::bulk_write
.
Para saber mais sobre esta versão, consulte as v3.11 Release Notes no Github Github.
Novidades no 3.10
Aviso
Construa alterações significativas no sistema
O driver3.10 introduz as seguintes alterações significativas no sistema de compilação:
Suporte para chamadas
find_package(libbsoncxx)
efind_package(libmongocxx)
. Em vez disso , usefind_package(bsoncxx)
efind_package(mongocxx)
.Descarta o suporte para as variáveis
LIBBSONCXX_*
eLIBMONGOCXX_*
CMake fornecidas pelos arquivos de configuração do pacote CMake legado . Use os destinos CMakemongo::bsoncxx_*
emongo::mongocxx_*
.Remove a opção
BSONCXX_POLY_USE_STD_EXPERIMENTAL
CMake e elimina o suporte para selecionar a biblioteca padrão experimental do C++ como uma opção de polyfill.
O v3.10.0 a versão do driver inclui as seguintes novas funcionalidades:
Adiciona cabeçalhos de encaminhamento que fornecem declarações não definidoras de tipos de classe
bsoncxx
emongocxx
. O driver não é compatível com declarações de encaminhamento definidas pelo usuário de qualquer entidade de biblioteca. Para obter a declaração ou definição de uma entidade da biblioteca, inclua sempre o cabeçalho correspondente.A opção
ENABLE_BSONCXX_USE_POLY_IMPLS
do CMake permite selecionarbsoncxx
implementações de polyfills17 C++ por padrão quando nenhuma biblioteca de polyfill é solicitada. Esta opção éOFF
por padrão.A opção
BSONCXX_POLY_USE_IMPLS
do CMake permite selecionar implementaçõesbsoncxx
1} de polyfills17 do C++ em vez de bibliotecas externas ou da biblioteca padrão do C++ . Esta opção éOFF
por padrão.Os namespaces
bsoncxx::v_noabi
emongocxx::v_noabi
não são mais declarados embutidos. As declarações de namespace raiz ainda são suportadas e espera-se que permaneçam equivalentes às definições anteriores. Por exemplo,bsoncxx::document
ainda é equivalente absoncxx::v_noabi::document
emongocxx::client
ainda é equivalente amongocxx::v_noabi::client
.Por padrão, quando os nomes de arquivos da biblioteca são compilados com MSVC (conforme detectado pela variável
MSVC
do CMake), eles são incorporados a uma string de caracteres de tag ABI. Essas strings são semelhantes às seguintes:bsoncxx-v_noabi-rhs-x64-v142-md.lib Para desabilitar este comportamento, defina o
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFF
como parte de sua configuração do CMake.A string da tag ABI também pode ser incorporada em nomes de arquivos de metadados pkg-config, semelhantes aos seguintes:
libbsoncxx-v_noabi-rhs-x64-v142-md.pc Para habilitar este comportamento, defina
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ON
eENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON
como parte de sua configuração do CMake.
Para saber mais sobre esta versão, consulte as Notas de versão do v3.10 no Github.
Novidades no 3.9
Aviso
Construa alterações significativas no sistema
O driver3.9 introduz as seguintes alterações significativas:
Remove o suporte para destinos exportados da árvore de compilação do projeto CMake
Elimina o suporte para macOS 10.14, macOS 10.15 e Ubuntu 14.04
Exige MongoDB C Driver v1.25.0 ou posterior
Requer CMake v3.15 ou posterior para suportar o módulo
FetchContent
A versão do driver v3.9 inclui os seguintes novos recursos:
A imagem do container do driver C++ agora está disponível no Docker Hub.
O driver baixa automaticamente a dependência do driver MongoDB C se você não fornecer.
O driver já não constrói testes como parte do alvo
all
. Para construir testes, defina oBUILD_TESTING=ON
como parte da configuração do CMake.O driver utiliza o
FetchContent
módulo para baixar e construir o Núcleo MONMLSTC biblioteca polyfill, se não for fornecida pelo sistema, em vez doExternalProject
módulo . Ele também não corrige diretivasinclude
em cabeçalhos MONMLSTC Core.Adiciona a opção CMake
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX
. Se essa opção estiver definida comoTRUE
, a opçãoCMAKE_INSTALL_PREFIX
assumirá como padrão o diretório de construção. O valor padrão desta opção éTRUE
.Adiciona uma API para gerenciar índices do Atlas Search .
Adiciona o recurso
VERSIONINFO
absoncxx.dll
emongocxx.dll
.Documenta explicitamente que lançar uma exceção de uma chamada de resposta de resposta APM é um comportamento indefinido.
Não instala prematuramente cabeçalhos MONMLSTC Core durante a etapa de compilação do CMake.
Requer que um pacote MongoDB C Driver CMake seja encontrado via
find_dependency()
para todas as configurações de pacote de driver C++ instaladas.
Para saber mais sobre esta versão, consulte as Notas de versão do v3.9 no Github.