Docs Menu
Docs Home
/ / /
Java 동기화 드라이버

새로운 기능

이 페이지의 내용

  • 5.2의 새로운 기능
  • 5.1.3의 새로운 기능
  • 5.1.2의 새로운 기능
  • 5.1.1의 새로운 기능
  • 5.1의 새로운 기능
  • 5.0의 새로운 기능
  • 4.11의 새로운 기능
  • 4.10 버전의 새로운 기능
  • 4.9의 새로운 기능
  • 4.8의 새로운 기능
  • 4.7.1의 새로운 기능
  • 4.7의 새로운 기능
  • 4.6의 새로운 기능
  • 4.5.1의 새로운 기능
  • 4.5의 새로운 기능
  • 4.4의 새로운 기능
  • 4.3의 새로운 기능
  • 4.2의 새로운 기능
  • 4.1의 새로운 기능
  • 4.0의 새로운 기능

다음 버전의 새로운 기능에 대해 알아보세요:

  • 버전 5.2

  • 버전 5.1.3

  • 버전 5.1.2

  • 버전 5.1.1

  • 5.1 버전

  • 버전 5.0

  • 4.11 버전

  • 버전 4.10

  • 버전 4.9

  • 버전 4.8

  • 버전 4.7.1

  • 버전 4.7.0

  • 버전 4.6

  • 버전 4.5.1

  • 버전 4.5

  • 버전 4.4

  • 버전 4.3

  • 버전 4.2

  • 버전 4.1

  • 버전 4.0

5.2 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 연결 URI에서 호스트 이름과 클라이언트 옵션 사이에 슬래시(/) 문자를 사용하는 것은 선택 사항입니다. 드라이버는 동일한 방식으로 다음 연결 URI 예시를 구문 분석합니다.

    // Connection URI with delimiting forward-slash
    String uri = "mongodb://example.com/?w=majority";
    // Connection URI without delimiting forward-slash
    String uri = "mongodb://example.com?w=majority";
  • SearchIndexModel 인스턴스를 구성할 때 전달할 수 있는 SearchIndexType 클래스를 추가합니다. 이 변경 사항을 통해 Atlas Search 또는 Vector Search 인덱스를 생성할 때 인덱스 유형을 지정할 수 있습니다. 자세히 알아보려면 인덱스 가이드에서 Atlas Search 및 Vector Search 인덱스 를 참조하세요.

  • SCRAM-SHA-1SCRAM-SHA-256 인증 메커니즘을 구현하는 알고리즘 구현을 구성된 JCA 제공자에게 위임합니다. 이 변경은 애플리케이션에서 구성된 FIPS 호환 JCA 제공자를 사용하여 더 높은 수준의 보안을 제공할 수 있음을 의미합니다.

  • mongodb-crypt 수정 종속성 버전을 사용하여 JVM 드라이버의 버전과 일치시킵니다. 의 향후 버전은 mongodb-crypt 운전자 와 함께 출시될 예정이며 동일한 버전 번호를 주식 합니다.mongodb-crypt 종속성을 v 로 업그레이드 해야 합니다. .5 20 이 출시하다 의 운전자 를 업그레이드할 때 . 학습 내용은 사용 중 암호화 가이드 를 참조하세요.

  • 지원되는 모든 플랫폼에서 네이티브 암호화를 구현하여 성능이 향상되었습니다. 다음 목록에서는 운영 체제에 따라 이 개선 사항을 구현하는 데 필요한 조치를 설명합니다.

    • Windows: mongodb-crypt 버전을 v5.2.0 로 업그레이드합니다.

    • Mac: mongodb-crypt 버전을 v5.2.0 으로 업그레이드합니다.

    • Linux: mongodb-crypt JAR 파일에 번들로 제공되는 파일을 사용하는 대신 파일 시스템에 직접 libmongocrypt.so 를 설치합니다. libmongocrypt 설치에 대한 Linux 지침은 서버 매뉴얼 에서 찾을 수 있습니다. 패키지 관리자를 사용하여 libmongocrypt 를 설치하는 경우 추가 구성 없이 JNA(Java Native Access)가 해당 위치를 찾습니다. 또는 LD_LIBRARY_PATH 환경 변수를 libmongocrypt 패키지의 파일 경로로 설정하여 검색 경로를 지정할 수 있습니다.

      번들로 제공되는 공유 라이브러리는 OpenSSL 바이너리 비호환성 가능성으로 인해 OpenSSL과 연결되지 않으므로 직접 설치를 권장합니다.

      공유 라이브러리 로딩은 JNA에서 처리합니다. 라이브러리 로딩 검색 경로 순서에 대한 규칙은 NativeLibrary 클래스 문서에서 확인할 수 있습니다.

  • 일부 상황에서 InsertOneResult.getInsertedId()InsertManyResult.getInsertedIds() 메서드가 잘못된 문서 ID를 반환하는 문제를 수정합니다. 이 변경 사항은 Java 드라이버 v5.1.4 및 v4.11.4 에 백포트되었습니다.

  • 샤드 클러스터 작업이 실패하면 드라이버는 다른 mongos 서버를 사용할 수 있는 경우 작업 재시도를 위해 동일한 mongos 서버를 선택하지 않습니다.

  • 애플리케이션에서 GraalVM 네이티브 이미지를 사용할 때 필요한 연결 가능성 메타데이터를 추가합니다. 이 메타데이터는 드라이버 라이브러리를 사용할 때 연결 가능성 메타데이터를 수집할 필요성을 대체합니다. 자세한 내용은 연결 가능성 메타데이터 를 참조하세요. GraalVM 문서에서 확인 가능합니다.

    지원되는 모든 플랫폼(대상)에 대한 항목을 추가하면 GraalVM 네이티브 이미지를 사용하여 빌드된 네이티브 실행 파일의 크기에 큰 영향을 미치기 때문에 이 변경으로 인해 및 리소스 항목이 추가되지 libjnidispatch libmongocrypt org.mongodb:mongodb-crypt 않습니다. 이 샘플 리소스-config.json 보기 파일을 드라이버 GitHub 리포지토리에서 확인하여 애플리케이션이 라이브러리에 의존하는 경우 이러한 항목을 명시적으로 지정하는 방법을 확인합니다.

  • VectorSearchOptions API를 확장하여 다음과 같은 특정 옵션 하위 유형을 도입하여 정확한 벡터 검색을 활성화합니다.

    • ExactVectorSearchOptions: 이 옵션 유형을 사용하면 정확한 일치가 활성화되어 결과가 지정된 쿼리 벡터에 가장 가까운 벡터가 됩니다.

    • ApproximateVectorSearchOptions: 정확히 가장 가까운 벡터를 반환하지 않을 수 있는 검색을 활성화하려면 이 옵션 유형을 사용합니다. 이 유형을 인스턴스화할 때 numCandidates 매개변수를 전달하여 고려해야 할 가장 가까운 이웃의 수를 지정할 수 있습니다.

    Atlas Vector Search 기능 사용에 대해 자세히 알아보려면 애그리게이션 빌더 가이드에서 Atlas Vector Search 를 참조하세요.

5.1.3 드라이버 패치 릴리스에는 다음과 같은 변경 사항이 포함됩니다.

  • Cursor 유형을 사용할 때 어설션 오류를 일으킬 수 있는 문제를 수정합니다.

5.1.2 드라이버 패치 릴리스에는 다음과 같은 변경 사항이 포함됩니다.

  • 기본 클래스를 MongoCollection 인스턴스의 일반 유형으로 지정하는 경우 드라이버가 일반 기본 클래스를 확장하는 구체적인 클래스를 인코딩 및 디코딩하지 못하는 문제를 수정합니다.

  • 최상위 도메인에서 6자 이상의 도메인 이름을 사용할 수 있도록 SOCKS5 프록시 기능을 사용할 때 도메인 이름의 유효성을 검사하는 방법과 관련된 문제를 수정합니다.

5.1.1 드라이버 패치 릴리스에는 다음과 같은 변경 사항이 포함됩니다.

  • MONGODB-OIDC 인증 메커니즘을 사용하는 경우 authMechanismProperties 연결 문자열 값에 쉼표 문자를 포함하지 않아야 합니다. 이 동작에 대해 자세히 알아보려면 엔터프라이즈 인증 가이드의 MONGODB-OIDC 섹션을 참조하세요.

  • 중복된 바이트 배열 복제를 제거하여 GridFS 처리량을 최적화합니다. GridFSDownloadStreamGridFSUploadStream 유형은 Document 대신 BsonDocument 유형을 사용합니다.

경고

이 릴리스의 사용 중단

드라이버의 향후 주요 릴리스에서 호환성이 손상되는 변경이 발생하지 않도록 하려면 더 이상 사용되지 않는 프로그램 요소에 의존하는 모든 애플리케이션 코드를 교체하세요.

이 섹션에는 다음 정보가 포함되어 있습니다.

  • MongoDB Server v3 을(를) 지원합니다.6 는 더 이상 사용되지 않으며 다음 드라이버 버전 릴리스에서 제거될 예정입니다. MongoDB Server 배포를 업그레이드하는 방법을 알아보려면 MongoDB Server 매뉴얼의 릴리스 노트 를 참조하세요.

  • GraalVM 네이티브 이미지 기술에 대한 내부 테스트입니다. 이러한 테스트에는 GraalVM 네이티브 이미지 도구를 사용하여 네이티브 애플리케이션을 빌드하는 것이 포함됩니다.

  • MONGODB-OIDC 인증 메커니즘에 대한 지원이 강화되었습니다. OIDC에 대한 자세한 내용은 엔터프라이즈 인증 메커니즘 가이드의 MONGODB-OIDC 섹션을 참조하세요.

  • serverMonitoringMode 연결 URI 옵션을 도입합니다. 이 옵션에 대한 자세한 내용은 연결 옵션 가이드를 참조하세요.

경고

이 릴리스의 호환성이 손상되는 변경

이 드라이버 버전에는 호환성이 손상되는 변경이 도입되었습니다. 이러한 변경 사항의 목록은 업그레이드 가이드의 버전 5.0 호환성이 손상되는 변경 섹션 을 참조하세요.

경고

이 릴리스의 사용 중단

드라이버의 향후 주요 릴리스에서 호환성이 손상되는 변경이 발생하지 않도록 하려면 더 이상 사용되지 않는 프로그램 요소에 의존하는 모든 애플리케이션 코드를 교체하세요.

이 섹션에는 다음 정보가 포함되어 있습니다.

  • org.mongodb.scala.Observable.completeWithUnit() 메서드는 더 이상 지원되지 않습니다. 이제 드라이버가 org.mongodb.scala.Observable[Void] 대신 org.mongodb.scala.Observable[Unit]을(를) 노출하므로 이 메서드는 더 이상 유용하지 않습니다. 이는 이번 릴리스에서 옵저버블에 관한 호환성이 손상되는 변경과 관련이 있습니다.

  • com.mongodb.event.ConnectionReadyEventgetElapsedTime() 메서드에는 ConnectionCreatedEvent 전송하는 데 걸리는 시간이 포함되어 있습니다. 즉, 반환된 시간에는 com.mongodb.event.ConnectionPoolListener.connectionCreated() 메서드의 지속 시간이 포함됩니다.

    com.mongodb.event.ConnectionCheckedOutFailedEventcom.mongodb.event.ConnectionCheckedOutEventgetElapsedTime() 메서드에는 com.mongodb.event.ConnectionCheckOutStartedEvent 전송하는 데 걸리는 시간이 포함되어 있습니다. 즉, 반환된 시간에는 com.mongodb.eventConnectionPoolListener.connectionCheckOutStarted() 메서드의 지속 시간이 포함됩니다.

5.0 드라이버 릴리스에는 다음과 같은 기능이 도입되었습니다.

  • listCollections 명령의 authorizedCollection 옵션에 대한 지원을 추가합니다. 이는 com.mongodb.client.MongoDatabase.listCollectionNames() 메서드를 변경하여 수행되었습니다. 반환 유형은 이제 com.mongodb.client.ListCollectionNamesIterable 이지만, 이전에는 MongoIterable<String> 이었습니다. 이 변경을 통해 ListCollectionNamesIterable.authorizedCollections() 메서드를 사용하고 authorizedCollections 옵션을 지정하여 반환 값을 구성할 수 있습니다. 다음 클래스와 인터페이스에 동등한 변경 사항이 적용되었습니다.

    • com.mongodb.reactivestreams.client.MongoDatabase

    • org.mongodb.scala.MongoDatabase

    • com.mongodb.kotlin.client.MongoDatabase

    • com.mongodb.kotlin.client.coroutine.MongoDatabase

    이러한 변경 사항 은 listCollectionsNames() 메서드에 바이너리 호환성이 손상되는 변경을 도입합니다. MongoDatabase.listCollectionNames() 메서드 및 authorizedCollections 옵션에 대한 자세한 내용은 listCollections MongoDB Server 매뉴얼 페이지 또는 컬렉션 목록 가져오기를 참조하세요.

참고

v5.0.2 패치 릴리스는 최상위 도메인에서 6자 이상의 도메인 이름을 사용할 수 있도록 SOCKS5 프록시 기능을 사용할 때 도메인 이름의 유효성을 검사하는 방법과 관련된 문제를 수정했습니다.

이 섹션에는 다음 정보가 포함되어 있습니다.

경고

이 릴리스의 사용 중단

드라이버의 향후 주요 릴리스에서 주요 변경 사항이 발생하지 않도록 하려면 더 이상 사용되지 않는 메서드 및 유형에 의존하는 모든 애플리케이션 코드를 교체하세요.

4.11 드라이버 릴리스에서는 다음 항목이 더 이상 사용되지 않습니다.

  • DBCollection 클래스의 getStats()isCapped() 인스턴스 메서드는 더 이상 사용되지 않습니다. 해당 서버 명령은 MongoDB v6.2 이상에서 더 이상 사용되지 않습니다. 대신 $collStats 애그리게이션 파이프라인 단계를 사용하여 이러한 메서드에서 제공하는 정보를 검색하세요. 다음 코드 예제와 같이 애그리게이션을 실행할 수 있습니다.

    Cursor cursor = collection.aggregate(Arrays.asList(
    new BasicDBObject("$collStats",
    new BasicDBObject("storageStats", new BasicDBObject()))),
    AggregationOptions.builder().build()
    );

    컬렉션이 고정 사이즈 컬렉션인지 확인하려면 이전 예시 애그리게이션에서 Cursor 인스턴스가 반환한 storageStats.capped 필드 값에 액세스합니다.

    $collStats 집계 연산자에 대해 자세히 알아보려면 $collStats(집계) 서버 수동 항목을 참조하세요.

  • 다음 네트워크 주소 관련 메서드는 더 이상 사용되지 않으며 v5.0에서 제거됩니다.

    • ServerAddress 메서드 getSocketAddress()getSocketAddresses().

      getSocketAddress() 대신 java.net.InetAddressgetByName() 인스턴스 메서드를 사용합니다.

      getSocketAddresses() 대신 java.net.InetAddressgetAllByName() 인스턴스 메서드를 사용합니다.

    • UnixServerAddress 메서드 getUnixSocketAddress().

      getUnixSocketAddress() 대신 jnr.unixsocket.UnixSocketAddress의 인스턴스를 구성합니다. 생성자에 UNIX 소켓 파일의 전체 경로를 전달합니다. 기본적으로 MongoDB는 "/tmp/mongodb-27017.sock"에 UNIX 소켓 파일을 생성합니다. UnixSocketAddress에 대한 자세한 내용은 UnixSocketAddress API 문서에서 확인하세요.

  • StreamFactory 와 관련된 다음 메서드 및 유형 인터페이스는 더 이상 사용되지 않으며 v 에서 제거될5 0예정입니다. :

    • streamFactoryFactory() 다음의 메서드 MongoClientSettings.Builder

    • getStreamFactoryFactory() 다음의 메서드 MongoClientSettings

    • NettyStreamFactoryFactory 클래스

    • NettyStreamFactory 클래스

    • AsynchronousSocketChannelStreamFactory 클래스

    • AsynchronousSocketChannelStreamFactoryFactory 클래스

    • BufferProvider 클래스

    • SocketStreamFactory 클래스

    • Stream 클래스

    • StreamFactory 클래스

    • StreamFactoryFactory 클래스

    • TlsChannelStreamFactoryFactory 클래스

    MongoClientSettings.Builder.streamFactoryFactory()를 사용하여 Netty를 구성하는 경우 코드가 다음과 비슷할 수 있습니다.

    import com.mongodb.connection.netty.NettyStreamFactoryFactory;
    // ...
    MongoClientSettings settings = MongoClientSettings.builder()
    .streamFactoryFactory(NettyStreamFactoryFactory.builder().build())
    .build();

    다음 예시와 같이 이 코드를 TransportSettings.nettyBuilder()로 대체합니다.

    import com.mongodb.connection.TransportSettings;
    // ...
    MongoClientSettings settings = MongoClientSettings.builder()
    .transportSettings(TransportSettings.nettyBuilder().build())
    .build();

4.11 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

참고

v4.11.3 패치 릴리스는 최상위 도메인에서 6자 이상의 도메인 이름을 사용할 수 있도록 SOCKS5 프록시 기능을 사용할 때 도메인 이름의 유효성을 검사하는 방법과 관련된 문제를 수정했습니다.

  • 16MB를 초과하는 change stream 이벤트의 일부를 식별하기 위해 ChangeStreamDocument 클래스에 getSplitEvent() 메서드를 추가했습니다. 16MB를 초과하는 이벤트를 처리하려면 change stream에서 애그리게이션 단계 $changeStreamSplitLargeEvent를 사용해야 합니다. 자세한 내용은 대규모 change stream 이벤트 분할을 참조하세요.

  • $vectorSearch에 대한 애그리게이션 단계 빌더를 추가했습니다. 자세히 알아보려면 Atlas Vector Search를 참조하세요.

  • Atlas Search 인덱스 관리 헬퍼가 추가되었습니다. 자세히 알아보려면 Atlas Search 인덱스를 참조하세요.

  • Snappy 및 Zstd 압축 라이브러리 종속성 버전이 업데이트되었습니다. 현재 종속성 버전에 대한 자세한 내용은 네트워크 압축을 참조하세요.

  • 연결 풀 이벤트 기간을 모니터링하기 위해 다음 클래스에 getElapsedTime() 메서드를 추가했습니다.

  • Java 21 가상 스레드 및 구조적 동시성을 지원합니다. 가상 스레드가 불필요하게 고정되는 것을 방지하고 스레드의 중단된 상태를 유지하기 위해 드라이버 내부가 업데이트되었습니다. 이는 취소에 사용되는 구조적 동시성에 후자가 중요하기 때문입니다.

    가상 스레드에 대한 자세한 내용은 가상 스레드 JDK 개선 제안을 참조하세요. 구조적 동시성에 대해 자세히 알아보려면 구조적 동시성 JDK 개선 제안을 참조하세요.

  • 다음 유형에 대한 API 문서가 업데이트되었습니다.

4.10 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 통계 애그리게이션를 위한 Accumulators.percentile()Accumulators.median() 방법이 구현되었습니다.

  • com.mongodb.client.model.search 패키지의 인터페이스는 이제 @Evolving 대신 @Sealed로 표시됩니다. 봉인된 인터페이스는 라이브러리의 소비자가 확장하거나 구현해서는 안 됩니다.

  • 드라이버가 재시도 작업에 대해 중복 로그 메시지를 전송하는 문제가 해결되었습니다. 이제 드라이버는 재시도 작업마다 하나의 로그 메시지를 올바르게 전송합니다.

  • org.bson.codecs.Parameterizable 인터페이스는 더 이상 사용되지 않습니다. 사용자 지정 Codec 유형에서 이 인터페이스를 구현하는 대신 코덱이 매개변수화된 유형에 대해 의도된 경우 코덱의 CodecProvider에서 CodecProvider.get() 메서드를 재정의합니다.

  • 사용자 지정 DNS 해석기를 지원합니다.

  • Queryable Encryption(QE)을 지원합니다. QE 기능을 사용하기 위한 요구 사항에 대해 자세히 알아보려면 Queryable Encryption 드라이버 호환성 표를 참조하세요.

중요

애그리게이션 표현식 연산이 베타 버전으로 출시되었습니다.

이 드라이버 버전에는 애그리게이션 표현식을 만들기 위한 API가 도입되었습니다. 이 기능은 베타 단계에 있습니다.

4.9 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • BsonCreator로 주석 처리된 생성자에 BsonProperty 또는 BsonId가 아닌 다른 주석이 있는 매개변수가 포함된 경우를 식별하는 새로운 예외가 추가되었습니다.

  • org.mongodb.driver.protocol.command 패키지에서 보고한 명령 모니터링 메시지의 로그 메시지 형식이 변경되었습니다.

  • 애그리게이션에 집계 파이프라인 단계에 대한 $documents 지원이 추가되었습니다. 헬퍼 클래스.

  • MongoClientSettings.Builder.applyToLoggerSettings() 추가 및 LoggerSettings.Builder.maxDocumentLength() 메서드를 사용하여 로그 메시지에서 BSON 문서의 확장 JSON 표현에 대한 최대 길이를 지정할 수 있습니다.

경고

v5.0의 단절적 변경 사항

v4.8 드라이버에 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.8 단절적 변경 사항드라이버 버전 4.8 서버 지원 변경 사항 을 참조하세요.

중요

사용 중단 안내

MapCodecIterableCodec 클래스는 더 이상 사용되지 않습니다. MapCodec 대신 MapCodecProvider 을 사용합니다. IterableCodec 대신 Collection Iterable 유형의 경우 CollectionCodecProvider 또는 IterableCodecProvider 를 사용합니다.

4.8 드라이버 릴리스의 동작 변경 사항은 다음과 같습니다.

  • 애플리케이션이 OSGi 컨테이너에 드라이버를 배포하고 Java 레코드의 인코딩 및 디코딩을 위해 드라이버를 사용하는 경우 org.bson.codecs.record 모듈에 대한 명시적 종속성을 추가해야 합니다.

  • INFO 대신 DEBUG 수준에서 새 연결 메시지를 로깅합니다.

4.8 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • AWS를 통한 인증을 지원합니다. 드라이버는 AWS SDK 버전 1과 버전 2 모두에 대한 선택적 종속성을 취합니다.

  • 사용 중인 암호화를 위해 GCP 및 Azure 모두에서 환경에서 자격 증명을 가져올 수 있도록 지원합니다.

  • 일반 매개변수가 있는 구성 요소가 포함된 레코드의 역직렬화를 지원합니다.

  • SortedSet, NavigableMap, LinkedList 또는 TreeSet와 같이 보다 구체적인 컨테이너 유형을 가진 구성 요소를 포함하는 레코드의 역직렬화를 지원합니다.

  • 재귀 레코드 유형, 즉 유형 정의에 주기가 포함된 레코드를 지원합니다.

  • MongoDB v6.1 이상에서 showExpandedEvents 서버 기능이 활성화된 경우 변경 스트림 업데이트 이벤트에 disambiguatedPaths 필드가 포함됩니다. getDisambiguatedPaths() 메서드 에서 이 필드에 대해 자세히 알아보세요. API 문서. 확장 이벤트 서버 설명서에서 showExpandedEvents 설정에 대해 자세히 알아보세요.

4.7.1 드라이버는 클라이언트 사이드 필드 레벨 암호화 및 Queryable Encryption에 영향을 미치는 버그를 패치합니다. 이 버그로 인해 Google Cloud 키 관리 서비스 또는 Azure Key Vault에서 호스팅되는 고객 마스터 키로 암호화된 데이터 암호화 키(DEK)를 순환시킬 때 데이터가 손상될 수 있습니다. 이 버그는 RewrapManyDataKey 메서드의 드라이버 버전 4.7.0 에 존재했으며 DEK 손실의 원인으로 작용했습니다.

중요

키 볼트 컬렉션 백업

DEK를 순환시키기 전에 항상 키 볼트 컬렉션을 백업합니다. DEK를 분실하면 해당 키로 암호화된 모든 데이터에 액세스할 수 없게 됩니다.

경고

v5.0의 단절적 변경 사항

v4.7 드라이버에는 단절적 변경 사항이 포함되어 있습니다. 자세한 내용은 버전 4.7 단절적 변경 사항을 참조하세요.

4.7 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • MongoDB 6.0에 대한 완전한 지원이 추가되었습니다.

  • 다음과 같은 change stream 지원 개선 사항이 추가되었습니다.

    • 변경 스트림 에 대한 사전 이미지 및 사후 이미지 지원이 향상되었습니다. 변경 스트림 감시 헬퍼는 이제 fullDocument 옵션에 대해 whenAvailablerequired 을 허용합니다. 자세한 내용은 변경 스트림 참조 문서를 참조하세요.

    • whenAvailablerequired을 허용하는 새로운 fullDocumentBeforeChange 옵션을 추가했습니다.

    • 이제 MongoDB 컬렉션에 표시되도록 구성하면 변경 이벤트에 fullDocumentBeforeChange 필드가 포함됩니다.

    • change stream에 대한 showExpandedEvents 지원이 추가되었습니다.

    • wallTime 클래스에 ChangeStreamDocument 지원을 추가했습니다.

  • 클러스터형 인덱스 생성 지원이 추가되었습니다.

  • 자동 암호화(MongoDB v6.0 Enterprise 이상 필요) 및 수동 암호화 지원을 포함하여 Queryable Encryption 과 관련된 새로운 기능을 지원합니다.

    • 새로운 Queryable Encryption 공유 라이브러리를 mongocryptd 지원하므로 프로세스가 필요하지 않습니다. Queryable Encryption 공유 라이브러리에는 org.mongodb:mongodb-crypt1.5.1.1 필요합니다. 버전 이상.

  • 암호화 키 관리를 위한 새로운 API가 추가되었습니다.

  • $search/$searchMeta(Atlas에만 해당), $densify$fill를 포함하여 더 많은 집계 단계를 위한 빌더 API 메서드를 추가했습니다. 집계 빌더 페이지에서 이러한 메서드에 대해 자세히 알아보세요.

  • POJO 인코딩 및 디코딩에 사용할 수 있는 BsonExtraElements 주석을 추가했습니다. BsonExtraElements 를 사용하면 개발자가 새 필드를 명시적으로 매핑할 필요 없이 향후 새 필드를 수신할 수 있는 객체를 디코딩할 수 있습니다.

  • 다음을 포함한 성능 최적화:

    • 서버 세션 풀 및 버퍼 풀을 잠금 없이 구현합니다.

    • DBCursor의 새로운 정리 구현은 마무리 대신 Java Cleaner API를 사용하며, Java 9 이상에서 사용할 수 있습니다.

  • setWindowFields 빌더 API는 더 이상 베타 기능이 아닙니다. API의 변경으로 인해 바이너리 및 소스 호환성이 모두 중단됩니다. 자세한 내용은 버전 4.7 단절적 변경 사항을 참조하세요.

4.2 Node.js 드라이버 릴리스의 새로운 기능에는 다음 내용이 포함됩니다.

  • 이제 버퍼 풀이 모든 MongoClient 인스턴스에서 공유됩니다. 버퍼 풀은 1분 동안 유휴 상태였던 버퍼를 정리합니다.

  • 클라이언트 측 필드 레벨 암호화(CSFLE)에 대한 AWS KMS 자격 증명의 공급자를 지정하는 API가 추가되었습니다. 자세한 내용은 AutoEncryptionSettings.Builder.kmsProviderPropertySuppliers()ClientEncryptionSettings.Builder.kmsProviderPropertySuppliers() 자세한 내용은 API 문서를 참조하세요.

  • Apple M1 ARM 기반 하드웨어에 대한 CSFLE의 종속성인 org.mongodb:mongodb-crypt 호환성이 추가되었습니다.

  • 드라이버가 사용자 지정 DNS 클라이언트를 지정할 수 있도록 서비스 제공자 인터페이스(SPI)를 추가했습니다. DnsClient 보기DnsClientProvider 자세한 내용은 인터페이스 API 문서를 참조하세요.

  • Java 레코드 간 인코딩 및 디코딩을 위한 드라이버 지원 추가 및 BSON 문서(기본적으로 활성화되어 있음). 자세한 내용은 문서 데이터 형식: 레코드 를 참조하세요.

DNS 서버가 존재하지 않는 도메인을 나타내는 NXDomain 오류를 반환하는 경우 4.5.1 드라이버는 더 이상 예외를 발생시키지 않습니다.

4.5 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • SRV 리소스 레코드의 사용자 지정 서비스 이름 지정에 대한 지원이 추가되었습니다. 자세한 내용은 연결 옵션 가이드의 srvServiceName 설정을 참조하세요.

  • CodecRegistries.withUuidRepresentation() 메서드를 사용하여 코덱 레지스트리에서 UUID 표현을 사용자 지정할 수 있도록 지원이 추가되었습니다.

  • ClusterSettings, ServerSettingsConnectionPoolSettings 빌더에서 리스너 설정 재정의 지원이 추가되었습니다.

  • ClusterListener, ServerListenerServerMonitorListener에서 수신한 모든 이벤트는 이제 서로 다른 MongoClient 인스턴스에서 리스너를 공유하지 않을 때 발생 전 관계를 사용하여 완전히 정렬됩니다. 발생 전 정렬에 대해 자세히 알아보려면 Java 언어 사양의 발생 전 정렬을 참조하세요.

  • EnumCodecEnumCodecProvider 클래스를 추가하여 enum 유형에 대한 코덱 지원을 PojoCodec 클래스와 구분했습니다. MongoClientSettingsBson 인터페이스에서 액세스할 수 있는 기본 코덱 레지스트리에 이제 enum 코덱 클래스가 포함됩니다. 애플리케이션에서 사용자 지정 열거형 코덱과 기본 레지스트리 중 하나를 사용하는 경우 코덱 재정의섹션에 설명된 대로 순서를 지정해야 합니다.

  • 드라이버 4.4 및 4.3 버전에 영향을 미치는 성능 문제를 해결했습니다. 이 버전의 성능은 4.2의 성능과 유사합니다.

  • 클러스터 설명을 조회할 때 발생한 오류가 onError 구독자 콜백으로 전달되지 않는 문제가 해결되었습니다.

  • 압축이 활성화된 상태로 연결할 때 ByteBuf 인스턴스를 릴리스하는 문제가 해결되었습니다.

  • javax.annotation.* 패키지에 대한 불필요한 종속성을 org.mongodb.driver-core OSGi 번들에서 제거했습니다.

4.4 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • MongoDB 5.1과의 호환성 및 Java 17 지원이 추가되었습니다.

  • 다음의 인덱스 힌트에 대한 지원이 추가되었습니다. AggregateIterable

  • 세컨더리의 $merge$out 애그리게이션 단계에 대한 지원이 추가되었습니다.

  • Updates 빌더에서 mergeObjects() 메서드를 사용할 수 있습니다.

  • DocumentCodec Iterable 또는 Map 인스턴스에 쓸 때 코덱 레지스트리를 무시하지 않습니다.

4.3 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • MongoDB Stable API에 대한 지원이 추가되었습니다. 자세한 내용은 Stable API 가이드를 참조하세요.

    참고

    2022년 2월부터 버전이 지정된 APIStableAPI로 표시됩니다. 이름은 변경되나 모든 개념과 기능은 동일하게 유지됩니다.

  • MongoDB Atlas 서버리스 인스턴스 에 대한 연결 지원이 추가되었습니다. 설정에 대한 자세한 내용은 새 서버리스 인스턴스 생성방법에 대한 설명서를 참조하세요.

  • 창 연산자를 사용할 수 있도록 setWindowFields 파이프라인 단계에 대한 빌더 API가 추가되었습니다.

  • Netty io.netty.handler.ssl.SslContext 설정에 대한 지원이 추가되었습니다.

  • 다음에 대한 스냅샷 읽기 지원이 추가되었습니다. ClientSession

  • 연결 풀당 새 연결 설정 속도가 제한됩니다.

  • 삽입하거나 바꾸는 문서의 필드 이름에 허용되는 문자에 대한 대부분의 제한 사항이 제거되었습니다. 이는 이러한 제한 사항의 클라이언트측 시행에 의존하는 모든 애플리케이션의 동작 변경입니다.

다음 표는 문서 필드명에 허용되는 문자에 대한 제한 상태를 보여줍니다.

캐릭터
작업
설명
.
삽입 및 교체
이 문자를 포함하는 필드 이름에 대한 제한이 제거되었습니다.
$
Insert
이 문자로 시작하는 필드 이름에 대한 제한이 제거되었습니다.
$
바꾸기
중첩 문서에서 이 문자를 포함하는 필드 이름에 대한 제한이 제거되었습니다.
$
바꾸기
이 문자로 시작하는 필드 이름에 대한 최상위 문서의 제한을 유지했습니다. 이렇게 하면 업데이트 작업을 사용하려고 할 때 실수로 변경 작업을 사용하는 것을 방지할 수 있습니다.

참고

달러 접두사 또는 점으로 구분된 키를 사용하는 승인되지 않은 쓰기는 5.0 이전 버전에서 자동으로 거부될 수 있습니다. 서버에서 필드 이름에 대한 일부 제한이 여전히 적용됩니다.

경고

v4.2의 단절적 변경 사항

v4.2 드라이버에는 단절적 변경 사항이 포함되어 있습니다. 자세한 내용은 버전 4.2 단절적 변경 사항을 참조하세요.

4.2 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 클라이언트측 필드 레벨 암호화에 Azure 및 GCP 키 저장소가 추가되었습니다.

  • 여러 인증 요청에서 재사용할 수 있도록 Kerberos 캐싱 티켓이 추가되었습니다.

  • MongoClient 추가 MongoClientSettings 또는 ConnectionString 를 구성으로 사용하는 인스턴스

  • explain() 찾기 에서 메서드 사용 및 집계 명령

  • 중간 맵 표현을 피하여 JSON으로 인코딩 및 디코딩을 보다 효율적으로 수행할 수 있도록 JsonObject 클래스가 추가되었습니다.

  • BsonRepresentation 추가 ObjectId String POJO 에서 BSON 값을 로 표현할 수 있는 주석 클래스

  • Filters.empty() 를 추가했습니다. 메서드

4.1 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 계획된 유지 관리 이벤트 중에 클라이언트가 인식하는 페일오버 시간이 크게 감소합니다.

  • update()delete() 메서드가 이제 인덱스 힌트를 지원합니다.

  • find() 메서드는 RAM에서 실행하는 데 너무 많은 메모리가 필요한 정렬에 대해 allowDiskUse()를 지원합니다.

  • AWS(Amazon Web Services) IAM(Identity and Access Management) 자격 증명을 사용하는 MONGODB-AWS 인증 메커니즘에 대한 지원이 추가되었습니다.

  • 인증을 위한 서버 왕복 횟수가 줄어들어 연결 설정 속도가 빨라집니다.

경고

v4.0의 주요 변경 사항

v4.0 드라이버에는 단절적 변경 사항이 포함되어 있습니다. 자세한 내용은 버전 4.0 단절적 변경 사항을 참조하세요.

이번 릴리스에는 새로운 기능이 추가되지 않았습니다.

돌아가기

빠른 참조