문서 메뉴
문서 홈
/ / /
Go 드라이버

새로운 기능

이 페이지의 내용

  • 1.16의 새로운 기능
  • 1.15.1의 새로운 기능
  • 1.15의 새로운 기능
  • 1.14의 새로운 기능
  • 1.13의 새로운 기능
  • 1.12.1의 새로운 기능
  • 1.12의 새로운 기능
  • 1.11의 새로운 기능
  • 1.10의 새로운 기능
  • 1.9의 새로운 기능
  • 1.8의 새로운 기능
  • 1.7의 새로운 기능
  • 1.6의 새로운 기능
  • 1.5의 새로운 기능
  • 1.4의 새로운 기능
  • 1.3의 새로운 기능
  • 1.2의 새로운 기능
  • 1.1의 새로운 기능
  • 1.0의 새로운 기능

릴리스 노트

버전 간 변경 사항 및 업데이트에 대해 자세히 알아보려면 릴리스 노트 를 참조하세요. 드라이버 소스 코드와 함께 게시됩니다.

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

1.16 Go 드라이버 릴리스에는 다음과 같은 개선 및 수정 사항이 포함되어 있습니다.

  • Atlas Search 인덱스를 생성할 때 인덱스 유형 지정에 대한 지원을 추가합니다.

  • zstd 압축 알고리즘이 활성화되면 메모리 사용량이 줄어듭니다.

  • 일부 종속성 요구 사항을 업그레이드합니다. 업그레이드 목록은 v 의 "업그레이드 종속성" 섹션을 116 참조하세요. 릴리스 노트.

이러한 변경 사항에 대한 자세한 내용은 v1 16 를 참조하세요. 릴리스 노트 Github에서.

1.15.1 Go 드라이버 패치 릴리스에는 다음과 같은 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 복제본 세트 클러스터와의 연결을 끊으면 rttMonitor 연결이 남을 수 있는 연결 누수를 수정합니다.

  • 클라이언트 전체 제한 시간 및 작업 제한 시간이 설정된 경우 읽기 및 애그리게이션 작업에 maxTimeMS 값을 수동으로 지정할 수 있는 지원을 추가합니다.

  • 변경 스트림에서 호출할 수 있는 RemainingBatchLength() 메서드를 추가합니다.

이러한 변경 사항에 대한 자세한 내용은 v1 15를 참조하세요.1 . 릴리스 노트 Github에서.

1.15 Go 드라이버 릴리스에는 다음과 같은 개선 및 수정 사항이 포함되어 있습니다.

  • timeoutMS 연결 옵션을 지정하거나 SetTimeout()을 호출하여 클라이언트 전체 시간 제한을 설정하면 연결 이탈을 완화할 수 있습니다. 시간 제한이 설정되면 드라이버는 작업 시간이 초과된 후 연결을 재사용하려고 시도하고 최대 1초 동안 기다렸다가 연결을 재사용할 수 있는지 확인한 후 연결을 닫습니다.

  • 연결 풀 이벤트에는 체크아웃 기간 및 연결을 설정하는 데 걸린 총 시간을 측정하는 Duration 필드가 포함됩니다.

1.14 Go 드라이버 릴리스에는 다음과 같은 개선 및 수정 사항이 포함되어 있습니다.

  • Go 1.18 이전 버전은 더 이상 지원되지 않습니다.

  • 하트비트 시간 초과가 발생하면 진행 중인 작업이 선제적으로 취소됩니다.

  • "mongodb+srv://" 접두사를 포함하는 연결 문자열은 SRV 호스트 이름에 대문자를 포함할 수 있습니다.

1.13 Go 드라이버 릴리스에는 다음과 같은 개선 및 수정 사항이 포함되어 있습니다.

  • 서버 선택 및 SDAM에 대한 로깅. 로깅에 대해 자세히 알아보려면 로깅 문서를 참조하세요.

  • 프로그래밍 방식으로 검색 인덱스를 관리할 수 있는 Collection 유형의 메서드입니다.

  • event.CommandStartedEventevent.CommandFinishedEvent 이벤트는 DatabaseName 필드를 반환합니다. 이 필드는 명령 로깅 아날로그에도 포함되어 있습니다.

  • 샤딩된 토폴로지에서 실패한 쿼리를 재시도할 서버를 선택할 때 드라이버는 초기 시도에 사용된 서버를 제외합니다. 대신 적합한 mongos 인스턴스가 두 개 이상 있는 경우 드라이버는 임의로 하나를 선택합니다. 비정상적인 인스턴스는 자동으로 선택에서 제외됩니다.

  • 스트리밍 SDAM은 AWS Lambda 및 유사한 서비스형 기능(FaaS) 플랫폼에서 기본적으로 비활성화되어 있습니다. serverMonitoringMode URI 옵션을 사용하여 모니터링을 활성화할 수 있습니다.

1.12 Go 드라이버 릴리스에는 다음과 같은 개선 및 수정 사항이 포함되어 있습니다.

  • 드라이버는 세션을 종료할 때 연결을 해제합니다. 이렇게 하면 사용자가 로드 밸런서에 연결된 상태에서 트랜잭션을 실행할 때 연결이 유출되는 것을 방지할 수 있습니다.

  • bson.RawValue 유형을 잘못된 유형으로 언마셜링하거나 ReadConcern 인스턴스의 nil 포인터를 마셜링할 때 드라이버에서 런타임 오류가 발생하지 않습니다.

  • options.LogComponentAll을 로그 구성 요소로 올바르게 설정하면 모든 구성 요소에 대한 로그가 게시됩니다.

중요

사용 중단 안내

  • mongo.NewClient()client.Connect() 메서드는 더 이상 사용되지 않습니다. mongo.Connect() 메서드를 사용하여 클라이언트를 만들고 한 번의 호출로 연결할 수 있습니다.

1.12의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

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

ClientEncryption.CreateEncryptedCollection() 메서드는 암호화된 컬렉션을 새로 만들 때 데이터 암호화 키를 자동으로 생성합니다. QE 기능을 사용하는 방법을 알아보려면 서버 매뉴얼의 Quick Start를 참조하세요.

이제 LogSink 로깅 인터페이스를 사용하여 연결 관리 및 명령 실행 이벤트를 기록할 수 있습니다.

자세히 알아보려면 로깅 기초 가이드를 참조하세요.

이 드라이버 버전은 options 패키지에 드라이버가 BSON의 마셜링 및 언마셜링 방법을 지정하는 기능을 추가합니다.

다음 예시는 Client에서 BSON 옵션을 설정하는 방법을 보여줍니다. 옵션은 다음과 같은 동작을 지정합니다.

  • bson 구조체 태그가 없으면 드라이버는 json 구조체 태그로 대체됩니다.

  • 드라이버는 nil Go 맵 유형을 빈 BSON 문서로 마셜링합니다.

  • 드라이버는 nil Go 슬라이스 유형을 빈 BSON 배열로 마셜링합니다.

bsonOpts := &options.BSONOptions{
UseJSONStructTags: true,
NilMapAsEmpty: true,
NilSliceAsEmpty: true,
}
options.Client().SetBSONOptions(bsonOpts)

BSONOptions 유형을 지정하고 구현하는 방법에 대한 전체 예는 API 문서를 참조하세요.

이 드라이버 버전은 WriteConcern API를 간소화합니다. 변경 사항에 대해 자세히 알아보려면 쓰기 고려를 참조하세요.

  • EKS에서 AWS IAM 역할로 인증을 지원합니다.

  • 커서를 통해 반복할 때 가져오는 배치의 크기를 지정할 수 있도록 Cursor.SetBatchSize() 메서드가 추가되었습니다.

  • MarshalValue() 메서드로 마샬링된 BSON 값의 ummarshalling을 허용하는 UnmarshalValue() 메서드가 추가되었습니다.

중요

버전 1.11.9로 업그레이드

버전 1.11.0부터 1.11.2까지의 드라이버는 CommandErrorWriteException 등의 데이터베이스 오류 유형의 Raw 필드를 읽을 때 정의되지 않은 동작을 일으킬 수 있는 버그로 인해 철회되었습니다.

버전 1.11.8의 드라이버는 1.12.1에 대해 의도된 변경 사항이 잘못 포함되어 있어 철회되었습니다.

철회된 버전의 드라이버를 사용하는 경우 1.11.9 이상의 버전으로 업그레이드하세요.

1.11의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • 3.5 이상의 MongoDB 버전에서는 지원이 중단되었습니다.

  • 1.12 이상의 Go 버전에서는 지원이 중단되었습니다.

  • 다음을 포함한 Timeout API 및 동작이 개선되었습니다.

    • 애플리케이션 복원력을 높이기 위해 재시도 로직이 수정되었습니다.

    • 더 많은 시간 초과 오류를 포착하기 위해 확장된 mongo.IsTimeout 오류 헬퍼입니다.

    • SetReadDeadlineSetWriteDeadline (을)를 사용하는 대신 컨텍스트를 사용하는 새로운 GridFS 메서드입니다.

  • 작업 실행 중 메모리 할당량 감소.

  • 연결된 MongoDB 연결 문자열에 사용자 이름과 비밀번호가 포함된 경우 SRV 기록이 변경되지 않던 SRV 폴링 버그가 수정되었습니다.

  • Google Cloud 키 관리 서비스를 사용할 때 GCP 서비스 계정을 지원합니다.

  • Cursor.AllSession.WithTransaction 함수 사용 시 서버 측 리소스 정리가 개선되었습니다.

  • SERVICE_HOST authMechanismProperties 연결 문자열 옵션으로 Kerberos 인증 매개변수 사양이 활성화되었습니다.

  • BSON 문서에 UTC 타임스탬프 필드가 포함된 경우 타임스탬프에 대한 bson.Raw.String() 메서드의 출력을 확장 JSON 유형으로 수정했습니다.

  • 읽기 고려 "available" 또는 "linearizable"로 읽기를 재시도할 때 충돌 해결.

중요

버전 1.10.1 이상으로 업그레이드

1.10.1 Go 드라이버는 Google Cloud 키 관리 서비스 또는 Azure Key Vault에서 호스팅되는 고객 마스터 키로 암호화된 데이터 암호화 키를 순환할 때 데이터 손상을 일으킬 수 있는 버그를 패치합니다.

1.10의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • MongoDB 6.0와 완벽하게 호환됩니다.

  • 자동 및 수동 암호화를 위한 새로운 옵션을 포함하여 Queryable Encryption과 관련된 새로운 기능을 지원합니다.

  • mongocryptd 프로세스를 대체하는 새로운 자동 암호화 공유 라이브러리에 대한 지원입니다. 공유 라이브러리에는 MongoDB v6.0 Enterprise 이상 및 libmongocrypt 1.5.0 이상이 필요합니다.

  • 클러스터형 인덱스 생성 지원.

  • 암호화 키 관리를 위한 새로운 API 및 ClientEncryption 엔터티 작업.

  • 해당 클라이언트를 통해 전송된 각 작업에 대한 기본 컨텍스트 시간 초과를 설정하는 Timeout 클라이언트 옵션입니다.

  • 빈 유형을 디코딩할 때 데이터의 기본값을 primitive.M 또는 primitive.D로 설정하는 패치.

  • 마샬링되지 않은 데이터에 대해 비정형 맵 키 유형을 텍스트 표현으로 인코딩할 수 있도록 지원합니다.

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

    • 변경 스트림 이벤트의 업데이트 전후에 대한 전체 문서 요청이 개선되었습니다.

    • PRNUUID 생성이 개선되었습니다.

    • 와이어 메시지 압축 시 메모리 사용량 감소.

  • 자주 발생하는 문제 해결 방법 지원

1.9의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • 연결 폭풍 완화 기능이 개선되었습니다.

  • Custom 은 변경 스트림 및 집계 작업 옵션을 제공합니다.

  • Let 애그리게이션 표현식에 사용할 매개변수를 지정하는 대부분의 CRUD 명령 옵션입니다. Let 은(는) 매개변수 이름을 문서 필드에 대한 참조가 없는 상수 또는 닫힌 표현식인 값에 매핑하는 문서여야 합니다. MongoDB v5.0 이상이 필요합니다.

  • 마샬링 가능 및 nil이 아닌 BSON 문서에서 CursorSingleResult 인스턴스를 만드는 새로운 생성자 함수입니다.

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

  • MongoDB 5.1와 완벽하게 호환됩니다.

  • CSFLE 를 위한 KMS 공급자로서 KMIP 를 지원합니다.

  • 작동 Context 시간 초과를 줄이고 연결 이탈을 줄이기 위해 드라이버 연결 풀을 재설계했습니다. 동작 변경에는 다음이 포함됩니다.

    • 새 연결 생성 시간은 connectTimeoutMS에 초과됩니다.

    • 동시에 새 연결을 최대 두 개 설정할 수 있습니다.

  • Go 드라이버 문서, 코드, 테스트 및 사양 테스트에서 억압적이고 불필요하게 성별을 구분하는 언어를 제거합니다.

중요

버전 1.7.2 이상으로 업그레이드

1.7.2 Go 드라이버에는 minPoolSize > 0 시 연결을 만들고 체크아웃하는 사이에 발생할 수 있는 데이터 레이스에 대한 버그 수정이 포함되어 있습니다.

1.7의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • MongoDB 5.0과 완벽하게 호환됩니다.

  • 특정 읽기 작업에 대한 다중 문서 트랜잭션 외부의 "snapshot" 읽기 고려를 지원합니다.

  • WriteError.Details 필드에서 보고한 스키마 유효성 검사에 대한 WriteExceptionBulkWriteException 오류 메시지를 개선했습니다.

중요

버전 1.6.2 이상으로 업그레이드

1.6.2 Go 드라이버에는 minPoolSize > 0 시 연결을 만들고 체크아웃하는 사이에 발생할 수 있는 데이터 레이스에 대한 버그 수정이 포함되어 있습니다.

1.6의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • MongoDB Stable API를 지원합니다. 자세한 내용은 Stable API 가이드를 참조하세요.

  • 로드 밸런서 뒤에서 실행되는 모든 MongoDB 서비스에 대한 연결을 지원합니다.

  • time series 컬렉션 생성을 지원합니다. 자세한 내용은 Time Series 컬렉션 가이드를 참조하세요.

  • Let 옵션으로 집계 표현식을 사용할 수 있습니다.

1.5의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • 클라이언트 사이드 필드 레벨 암호화를 통해 Azure 및 GCP 키 관리 서비스를 지원합니다.

  • 중복 키 오류, 시간 초과 및 네트워크 오류를 감지하는 새로운 오류 API.

  • MongoDB 배포서버에서 변경 사항을 모니터링하는 서버 모니터링입니다.

  • 힌트 옵션, 정렬 옵션 또는 인덱스 생성에 사용되는 여러 키가 포함된 맵에서 예기치 않은 동작을 방지하는 오류입니다.

1.4의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • MongoDB 4.4와 완벽하게 호환됩니다.

  • 스테이플 및 스테이플되지 않은 OCSP 확인을 지원합니다.

  • 드라이버에서 OCSP 응답자에 연결할 수 없고 스테이플된 응답이 없는 경우 HTTP 요청 전송을 비활성화하는 새 tlsDisableOCSPEndpointCheck=true URI 옵션입니다.

  • BSON 언마샬링 중에 발생한 오류에 대한 추가 컨텍스트입니다.

  • 다양한 드라이버 오류 유형에 적합한 Unwrap 함수입니다.

1.3의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • mgocompat ClientOptions.SetRegistry 메서드를 호출하여 사용할 수 있는 globalsign/mgo/bson 와 호환되는 BSON 레지스트리를 내보내는 패키지입니다.

  • RegisterTypeEncoderRegisterHookEncoder 메서드는 더 이상 사용되지 않는 RegisterEncoder 메서드를 대체합니다. RegisterDecoder 을(를) 대체하도록 해당 변경이 적용되었습니다.

1.2의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • CSFLE 지원.

  • bson.MarshalValue 함수는 Go 유형을 BSON으로 마샬링합니다.

  • StringCodec문자열이 아닌 필드를 구조체의 문자열 필드로 디코딩할 수 있습니다.

  • IntCodec, UIntCodec, BoolCodecFloatCodecmgocompat 에 추가되어 코덱이 숫자와 부울 간에 변환할 수 있습니다.

1.1의 새로운 기능. Go 드라이버 릴리스에는 다음이 포함됩니다.

  • MongoDB 4.2와 완벽하게 호환됩니다.

  • 유지 관리 및 성능 향상을 위해 하위 수준 드라이버 구현을 재설계했습니다.

  • 연결 모니터링 및 풀링 사양을 통해 다양한 연결 및 연결 풀 이벤트를 더욱 효율적으로 모니터링할 수 있습니다.

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

← 빠른 참조