새로운 기능
개요
다음 버전의 새로운 기능에 대해 알아보세요:
단절적 변경 유형
새 버전의 C++ 운전자 에는 다음과 같은 유형의 호환성이 손상되는 변경이 도입될 수 있습니다.
API 변경 사항은 C++ 운전자 라이브러리의 API 와 관련이 있습니다. 이러한 변경 사항에는 API 주요 버전 충돌이 수반됩니다. 이러한 변경 사항을 주소 하기 위해 프로젝트 에서 C++ 소스 코드 를 편집해야 할 수도 있습니다.
예시
v1::func()
함수의 선언을 제거합니다. (ABI 호환성을 위해 정의가 계속 제공됩니다.)인라인 함수
v_noabi::func()
을 제거합니다.v_noabi::func()
을(를) 제거합니다.bsoncxx::foo
의 재선언을v1::foo
에서v2::foo
로 변경합니다. 이전 인터페이스를 계속 사용하려면bsoncxx::foo
을bsoncxx::v1::foo
로 한정합니다.
ABI 변경 사항은 C++ 운전자 라이브러리의 ABI와 관련이 있습니다. 이러한 변경 사항에는 ABI 버전 충돌이 수반되며, API 주요 버전 충돌도 수반될 수 있습니다. 이러한 변경 사항을 주소 하려면 프로젝트 를 다시 빌드하거나 C++ 소스 코드 를 편집해야 할 수 있습니다.
v_noabi
네임스페이스 에 선언된 엔터티에 해당하는 기호에는 ABI 안정성이 지원 되지 않습니다 . 이러한 기호에 대한 단절적 변경이 반드시 ABI 버전 충돌을 수반하는 것은 아닙니다.예시
내보낸 기호
v_noabi::func()
을 제거합니다.내보낸 기호
v1::func()
을 제거합니다.v1::type
에 대해 내보낸 기호를 제거합니다.
빌드 시스템 변경 사항은 빌드 시스템 또는 C++ 운전자 라이브러리의 패키징과 관련이 있습니다. 이러한 변경 사항이 반드시 API 주요 버전 충돌 또는 ABI 버전 충돌을 수반하는 것은 아닙니다. 이러한 변경 사항을 주소 하려면 빌드 시스템 구성을 수정하거나 프로젝트의 패키지 또는 종속성 관리 설정을 업데이트 해야 할 수 있습니다. C++ 소스 코드 를 수정하거나 다시 빌드해야 할 수도 있습니다.
예시
ENABLE_FOO
구성 변수를 제거합니다.ENABLE_BAR
구성 변수의 기본값 을OFF
에서ON
로 변경합니다.플랫폼 A, 컴파일러 B 또는 아키텍처 C 에 대한 지원 을 중단합니다.
3.11의 새로운 기능
경고
호환성이 손상되는 변경
v3.11 운전자 에는 다음과 같은 호환성이 손상되는 변경이 도입되었습니다.
MongoDB Server v3.6 에 대한 지원 을 중단합니다.
MongoDB C 드라이버 v1.28.0 이상이 필요합니다.
bsoncxx ABI에서 다음 비공개 멤버 함수의 내보내기를 제거합니다.
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*)
mongocxx ABI에서 다음 비공개 멤버 함수의 내보내기를 제거합니다.
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()
MSVC로 컴파일할 때 내보낸 모든 함수 기호를
__cdecl
으)로 선언합니다. 프로젝트를 빌드할 때 대체 기본값 호출 규칙을 사용하는 경우 이는 ABI 호환성이 손상되는 호환성이 손상되는 변경 입니다.
v3.11 운전자 출시하다 에는 다음과 같은 새로운 기능이 포함되어 있습니다.
MongoDB Server v8.0 에 대한 지원 을 추가합니다.
Queryable Encryption 범위 쿼리에 대한 지원 을 추가합니다. 이 기능 을 사용하려면 앱 이 MongoDB Server 8.0 이상에 연결되어야 합니다. Queryable Encryption 에 대한 자세한 내용은 MongoDB Server 매뉴얼의 Queryable Encryption 을 참조하세요.
mongocxx::v_noabi::bulk_write
에 대한empty()
멤버 함수를 추가합니다.
이 출시하다 에 학습 보려면 Github 에서 v 릴리스 노트3.11 를 Github 참조하세요.
3.10의 새로운 기능
경고
빌드 시스템 주요 변경 사항
v3.10 운전자 는 빌드 시스템에 다음과 같은 호환성이 손상되는 변경을 도입했습니다.
find_package(libbsoncxx)
및find_package(libmongocxx)
호출에 대한 지원 을 중단합니다. 대신find_package(bsoncxx)
및find_package(mongocxx)
를 사용합니다.레거시 CMake 패키지 구성 파일에서 제공하는
LIBBSONCXX_*
및LIBMONGOCXX_*
CMake 변수에 대한 지원 을 중단합니다. 대신mongo::bsoncxx_*
및mongo::mongocxx_*
CMake 타겟을 사용합니다.BSONCXX_POLY_USE_STD_EXPERIMENTAL
CMake 옵션을 제거하고 폴리필 옵션으로 실험적 C++ 표준 라이브러리를 선택하기 위한 지원 을 중단합니다.
v3.10.0 운전자 출시하다 에는 다음과 같은 새로운 기능이 포함되어 있습니다.
bsoncxx
및mongocxx
클래스 유형의 비정의 선언을 제공하는 정방향 헤더를 추가합니다. 운전자 는 라이브러리 엔터티의 사용자 정의 정방향 선언을 지원 하지 않습니다. 라이브러리 엔터티의 선언 또는 정의를 얻으려면 항상 해당 헤더를 포함하세요.CMake 옵션
ENABLE_BSONCXX_USE_POLY_IMPLS
을 사용하면 폴리필 라이브러리가 요청되지 않은 경우 기본값 으로 C++17 폴리필의bsoncxx
구현을 선택할 수 있습니다. 이 옵션은 기본값OFF
입니다.CMake 옵션
BSONCXX_POLY_USE_IMPLS
을 사용하면 외부 라이브러리 또는 C++ 표준 라이브러리 대신 C++17 폴리필의bsoncxx
구현을 선택할 수 있습니다. 이 옵션은 기본값OFF
입니다.bsoncxx::v_noabi
및mongocxx::v_noabi
네임스페이스는 더 이상 인라인으로 선언되지 않습니다. 루트 네임스페이스 선언은 계속 지원되며 이전 정의와 동일하게 유지될 것으로 예상됩니다. 예를 예시bsoncxx::document
는 여전히bsoncxx::v_noabi::document
과 동일하고mongocxx::client
는 여전히mongocxx::v_noabi::client
와 동일합니다.기본값 라이브러리 파일 이름이 MSVC(CMake의
MSVC
변수에 의해 감지됨)로 컴파일되면 ABI 태그를 지정하다 string 과 함께 포함됩니다. 이러한 문자열은 다음과 유사합니다.bsoncxx-v_noabi-rhs-x64-v142-md.lib 이 동작을 비활성화하려면 CMake 구성의 일부로
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFF
을(를) 설정하다 합니다.다음과 같이 ABI 태그를 지정하다 string 을 pkg-config 메타데이터 파일 이름에 포함할 수도 있습니다.
libbsoncxx-v_noabi-rhs-x64-v142-md.pc 이 동작을 활성화 하려면
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ON
및ENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON
를 CMake 구성의 일부로 설정하다 합니다.
이 출시하다 에 학습 보려면 v 릴리스 노트3.10 를 Github 참조하세요. 에서 .
3.9의 새로운 기능
경고
빌드 시스템 주요 변경 사항
v3.9 운전자 에는 다음과 같은 호환성이 손상되는 변경이 도입되었습니다.
CMake 프로젝트 빌드 트리에서 내보낸 대상에 대한 지원 을 제거합니다.
macOS 10.14, macOS 10.15 및 Ubuntu 14.04에 대한 지원
MongoDB C 드라이버 v1.25.0 이상이 필요합니다.
FetchContent
모듈을 지원 하려면 CMake v3.15 이상이 필요합니다.
v3.9 운전자 출시하다 에는 다음과 같은 새로운 기능이 포함되어 있습니다.
이제 Docker 허브에서 C++ 운전자 컨테이너 이미지를 사용할 수 있습니다.
사용자가 제공하지 않는 경우 운전자 는 MongoDB C 드라이버 종속성을 자동으로 다운로드합니다.
운전자 는 더 이상
all
대상의 일부로 테스트를 빌드하지 않습니다. 테스트를 빌드 하려면 CMake 구성의 일부로BUILD_TESTING=ON
을(를) 설정하다 합니다.운전자 는
FetchContent
모듈을 사용하여 MNMLSTC 코어 를 다운로드 하고 빌드ExternalProject
합니다. 시스템에서 제공하지 않는 경우 모듈 대신 폴리필 라이브러리를 사용합니다. 또한 MNMLSTC 코어 헤더의include
지시문을 패치하지 않습니다.CMake 옵션
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX
을 추가합니다. 이 옵션을TRUE
로 설정하다 하면CMAKE_INSTALL_PREFIX
옵션의 기본값은 빌드 디렉토리 입니다. 이 옵션의 기본값 은TRUE
입니다.Atlas Search 인덱스관리를 위한 API 를 추가합니다.
VERSIONINFO
리소스 를bsoncxx.dll
및mongocxx.dll
에 추가합니다.APM 콜백 에서 예외를 발생시키는 것이 정의되지 않은 동작임을 명시적으로 문서화합니다.
CMake 빌드 단계에서 MNMLSTC 코어 헤더를 조기에 설치하지 않습니다.
설치된 모든 C++ 운전자 패키지 구성에 대해
find_dependency()
를 통해 MongoDB C 드라이버 CMake 패키지 를 찾아야 합니다.
이 출시하다 에 학습 보려면 v 릴리스 노트3.9 를 Github 참조하세요. 에서 .