Docs Menu
Docs Home
/ / /
C#/ .NET 드라이버

새로운 기능

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

  • 버전 3.4

  • 3.3버전

  • 버전 3.2

  • 3.1버전

  • 버전 3.0

  • 2.30버전

  • 2.29버전

  • 2.28버전

  • 2.27버전

  • 2.26버전

  • 2.25버전

MongoDB 소프트웨어 수명 주기 일정에 따라, 향후 .NET/ C# 드라이버의 마이너 버전은 최소 MongoDB Server 버전을 4.0 에서 4.2으로 올릴 예정입니다. .NET/ C# 드라이버 더 이상 MongoDB Server 4.0을(를) 지원 하지 않습니다.

3.4 운전자 출시하다 에는 다음과 같은 새로운 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 애그리게이션을 수행할 때 유형을 변환하는 Mql.Convert() LINQ 메서드를 추가합니다. 자세한 학습 은 LINQ 가이드 의 $convert 섹션을 참조하세요.

  • KeyValuePair.Create() LINQ 메서드에 대한 지원 추가합니다.

  • 집계 빌더 메서드를 추가하여 GeoNear() $geoNear 집계 단계를 구성합니다. 예제를 보려면 MongoDB Server 매뉴얼에서 $geoNear 참조를 확인하세요.

  • 인터페이스에서 LINQ 쿼리에서 해당 인터페이스를 구현하는 형식으로의 캐스팅을 지원합니다.

  • LINQ에서 Dictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection) 생성자를 지원합니다.

  • Atlas Search 쿼리에 대해 다음 옵션을 추가합니다.

    • MatchCriteria SearchTextOptions 에서 Text() 연산자 메서드에 전달된 용어에 대한 일치 기준을 설정하다 .

    • Synonyms SearchPhraseOptions 에서 Phrase() 연산자 메서드를 사용할 때 동의어 매핑 정의의 이름을 설정하다 .

    Atlas Search 쿼리 수행에 대해 자세히 학습하려면 Atlas Search 가이드를 참조하세요.

  • IQueryable<Derived> 객체를 IQueryable<Base>로 캐스팅한 후 LINQ 쿼리를 지원합니다.

  • 사전 정의된 직렬 변환기 대신 구성된 직렬 변환기를 사용하도록 Atlas Search 연산자 동작을 수정합니다. 이전 동작을 사용하려면 다음 옵션을 설정하다 .

    SearchDefinition.UseConfiguredSerializers(false);

이 출시하다 에 대한 자세한 내용은 Github 의 v3.4 출시하다 노트 를 참조하세요.

3.3 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • ChangeStreamDocument 클래스의 create 이벤트에 대해 생성된 객체 의 유형을 나타내는 새 NamespaceType 필드 추가합니다. 변경 스트림에 대해 자세히 학습 데이터 변경 모니터링 가이드 참조하세요.

  • 다음과 같은 사용 중 암호화 기능을 추가합니다.

    • $lookup 집계 단계 지원

    • 데이터 암호화 키 캐시 수명을 구성하는 ClientEncryptionOptions 속성 입니다.

    사용 중 암호화 에 대해 자세히 학습 사용 중 암호화 가이드 참조하세요.

  • 다음 LINQ 기능을 추가합니다.

    • SkipWhile()TakeWhile() LINQ 집계 메서드를 지원합니다. 자세한 학습 은 LINQ 가이드 의 조건 건너뛰기조건 제한 섹션을 참조하세요.

    • LINQ 쿼리에서 $sigmoid 표현식 지원합니다.

    • 기본 데이터 유형 에 관계없이 문자열로 직렬화된 모든 딕셔너리 키에 액세스 위해 LINQ 구문을 사용하도록 지원합니다.

  • 여러 파이프라인의 결합된 결과에 순위 기반 결과 점수를 부여할 수 있는 $rankFusion 집계 단계에 대한 지원 추가합니다.

  • 필터하다 매개변수만 사용하는 ElemMatch() 메서드의 오버로드를 제공하여 값에 대해 직접 $elemMatch 쿼리에 대한 지원 추가합니다. 자세히 학습 빌더 가이드 의 배열 연산자 섹션을 참조하세요.

  • OfType<T>() 메서드 및 is 연산자 사용하여 스칼라 판별자의 유형을 확인하는 기능에 대한 지원 추가합니다.

이 출시하다 에 대한 자세한 내용은 Github 의 v3.3 출시하다 노트를 참조하세요.

3.2 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • 객체 직렬 변환기에서 직렬화 및 역직렬화를 허용하는 유형을 지정할 수 있는 새로운 ObjectSerializerAllowedTypesConvention 규칙을 추가합니다. 규칙에 대해 자세히 학습 규칙 가이드 참조하세요.

  • EnumRepresentationConvention 클래스에 대한 새 생성자를 추가하여 topLevelOnly 매개 변수를 사용하여 규칙을 열거형 속성에만 적용할지 아니면 열거형 컬렉션을 포함하는 모든 속성에 적용할지 여부를 지정할 수 있습니다.

    다음 예시 와 같이 새 생성자를 사용하여 EnumRepresentationConvention 클래스를 인스턴스화할 수 있습니다.

    EnumRepresentationConvention(BsonType representation, bool topLevelOnly);
  • 모든 필드를 검색한 다음 필터링하는 대신 서버 에서 필수 필드만 조회 하도록 클라이언트 사이드 프로젝션을 최적화합니다.

  • Atlas Vector Search 에서 이진 벡터 표현을 지원 위해 다음 클래스를 추가합니다.

    • BinaryVectorFloat32

    • BinaryVectorInt8

    • BinaryVectorPackedBit

    .NET/ C# 드라이버 사용한 Atlas Vector Search 에 대해 자세히 학습하려면 Atlas Vector Search 가이드를 참조하세요.

  • DocumentFormat 속성 DateOnlySerializer에 추가합니다. 이 속성 사용하면 운전자 DateOnly 값을 직렬화하는 방식을 사용자 지정할 수 있습니다. 또한 이 출시하다 에는 [BsonDateOnlyOptions()] 속성이 추가되어 속성 수준에서 DateOnly 값에 대한 직렬화 동작을 사용자 지정할 수 있습니다. 자세히 학습하려면 POCO 가이드의 Custom DateOnly 직렬화 섹션을 참조하세요.

이 출시하다 에 대한 자세한 내용은 Github 의 v3.2 출시하다 노트를 참조하세요.

3.1 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • System.Collections.Immutable 네임스페이스 의 변경할 수 없는 컬렉션에 대한 새로운 기본값 직렬 변환기를 추가합니다. 이제 운전자 ImmutableArray 객체를 직렬화할 수 있으며, 다른 변경할 수 없는 컬렉션에 대한 직렬화는 메모리 효율적입니다.

  • 프로그래밍 방식으로 Atlas Vector Search 인덱스 생성을 지원 위해 SearchIndexType 유형을 추가합니다. 자세한 학습은 Atlas Search 및 Vector Search 인덱스 가이드 참조하세요.

  • equals 연산자 에 대한 Atlas Search 빌더 사용하여 토큰 필드 유형 및 배열 필드 표현식에 대한 지원 추가합니다. .NET/ C# 드라이버 와 함께 Atlas Search 사용하는 방법에 대해 자세히 학습 Atlas Search 참조하세요.

  • 다음 Atlas Search 쿼리에 대한 지원 추가합니다.

    • nullGuid 값에 Equals() 연산자 메서드 사용

    • Guid 값에 In() 연산자 메서드 사용

    이러한 메서드에 대해 자세히 학습하려면 Atlas Search 가이드의 Atlas Search 연산자 및 수집기 섹션을 참조하세요.

  • Atlas Search 에서 순차적 페이지 매김에 대한 지원 추가합니다.

  • 3 개 미만의 부분으로 구성된 유효한 SRV 호스트 이름에 대한 지원 추가합니다.

  • MongoDB 쿼리 API 필터에서 Exists, IsMissingIsNullOrMissing 메서드에 대한 지원 추가합니다.

  • 정확한 인접 이웃(ENN) 벡터 검색 에 대한 지원 추가합니다. ENN 벡터 검색에 대해 자세히 학습 Atlas Search 문서에서 벡터 검색 쿼리 실행을 참조하세요.

  • 업데이트 및 바꾸기 작업을 위한 정렬 옵션을 추가합니다. 이 변경을 통해 단일 문서 업데이트 하거나 바꾸려고 할 때 여러 문서가 필터하다 와 일치하는 경우 정렬 순서를 설정하다 수 있습니다. 자세한 학습 은 업데이트 1문서 교체 가이드를 참조하세요.

이 출시하다 에 대한 자세한 내용은 v3.1 출시하다 노트를 참조하세요.

경고

v3.0의 단절적 변경 사항

v3.0 운전자 에 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 단절적 변경 3.0 사항을 참조하세요.

3.0 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • LINQ 쿼리를 Query API 로 변환하기 위한 옵션을 지정하는 MongoClientSettings.TranslationOptions 연결 옵션을 추가합니다. 자세한 내용은 연결 옵션을 참조하세요.

  • 반정밀도 부동 소수점 숫자를 나타내는 Half 유형에 대한 지원 을 추가합니다. 이 유형은 .NET 5 이상에서 사용할 수 있습니다. 유형에 Half 학습 보려면 MSDN의 절반 구조 API 참조 페이지를 참조하세요.

  • IMongoClient 인터페이스는 IDisposable 인터페이스를 상속합니다. 따라서 MongoClient 클래스와 IMongoClient 인터페이스를 구현 하는 기타 클래스에는 클라이언트 를 삭제하는 Dispose() 메서드가 포함되어 있습니다. 이 방법은 기본 클러스터 와 MongoDB 서버 에 대한 연결을 삭제하지 않습니다. 클러스터 및 연결을 삭제하려면 ClusterRegistry.UnregisterAndDisposeCluster() 메서드를 호출합니다. IDisposable 인터페이스의 구현 은 실험적입니다.

    인터페이스 IDisposable 및 메서드 사용에 Dispose() 학습 보려면 MSDN의 패턴 삭제를 참조하세요.

  • 시간 구성 요소가 없는 날짜 값을 나타내는 DateOnly 유형에 대한 지원 을 추가합니다. 이 유형은 .NET 6 이상에서 사용할 수 있습니다. 유형에 학습 DateOnly 보려면 DateOnly 구조체를 참조하세요. MSDN의 API 참조 페이지입니다.

  • 날짜 구성 요소가 없는 시간 값을 나타내는 TimeOnly 유형에 대한 지원 을 추가합니다. 이 유형은 .NET 6 이상에서 사용할 수 있습니다. 유형에 TimeOnly 학습 보려면 TimeOnly 구조체를 참조하세요. MSDN의 API 참조 페이지입니다.

  • LINQ3 제공자 와 함께 Find() 메서드, Select() 메서드 또는 Project() 집계 단계를 사용할 때 암시적 클라이언트 사이드 프로젝션 에 대한 지원 을 추가합니다. 이전 버전의 운전자 에서는 ToEnumerable() 또는 AsEnumerable() 메서드를 호출한 후에만 LINQ3 제공자 를 사용하여 클라이언트 사이드 프로젝션 을 수행할 수 있었습니다.

    운전자 메서드에 대한 클라이언트 사이드 프로젝션 을 활성화 하고 사용하는 방법을 학습 보려면 해당 탭 을 선택합니다.

    // Enable client-side projection
    var findOptions = new FindOptions();
    findOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var find = collection
    .Find(doc => doc.Id == 1, findOptions);
    .Project(doc => new { R = MyFunction(doc.Name) });
    // Enable client-side projection
    var aggregateOptions = new AggregateOptions();
    aggregateOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var queryable = collection
    .AsQueryable(aggregateOptions)
    .Where(doc => doc.Id == 1)
    .Select(doc => new { R = MyFunction(doc.Name) });
    // Enable client-side projection
    var aggregateOptions = new AggregateOptions();
    aggregateOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var aggregate = collection
    .Aggregate(aggregateOptions)
    .Project(doc => new { R = MyFunction(doc.Name) });

    MongoClientSettings

    클라이언트의 모든 쿼리에 대해 클라이언트 클라이언트 사이드 프로젝션 을 활성화 하려면 다음 예시 와 같이 MongoClientSettings 객체 의 TranslationOptions 속성 을 설정하다 합니다.

    clientSettings.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };

    .NET/ C# 드라이버 와 함께 집계 파이프라인 을 사용하는 방법에 학습 보려면 애그리게이션을 참조하세요.

  • 대량 쓰기 (write) 작업을 위한 MongoClient API 를 추가합니다. 대량 쓰기 작업에 학습 보려면 대량 쓰기 (write) 작업을 참조하세요.

이 출시하다 에 대한 자세한 내용은 v3.0 출시하다 노트를 참조하세요.

2.30 운전자 에는 새로운 기능이나 버그 수정이 도입되지 않습니다. 그 목적은 v3.0 에서 제거된 공용 API를 더 이상 사용되지 않는 것으로 표시하여 .NET/ C# 드라이버 의 v3.x로 쉽게 마이그레이션 하는 것입니다.

2.29 운전자 출시하다 에는 MongoDB Server 버전 8.0 에 대한 지원 이 추가되었으며 다음과 같은 새로운 기능이 포함되어 있습니다.

  • Queryable Encryption 범위 프로토콜 의 v2 에 대한 지원 을 추가합니다.

  • Queryable Encryption 에 대한 범위 인덱스에 대한 지원 을 추가합니다. Queryable Encryption 에 대한 자세한 내용은 MongoDB Server 매뉴얼의 Queryable Encryption 을 참조하세요.

이 출시하다 에 대한 자세한 내용은 v2.29 출시하다 노트를 참조하세요.

경고

v2.28의 잠재적인 단절적 변경 사항

  • 모든 .NET/ C# 드라이버 구성 요소에는 강력한 이름이 지정됩니다. 애플리케이션 에 여러 .NET/ C# 드라이버 버전을 참조하는 종속성이 있는 경우 바인딩 리디렉션을 생성하여 이러한 종속성을 관리 해야 합니다. 자세한 내용은 버전 2.28.0 단절적 변경 사항을 참조하세요.

2.28 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • Nullable<T> 과 관련된 추가 숫자 변환에 대한 지원 을 추가합니다.

  • CSFLE 또는 Queryable Encryption에 KMIP를 사용할 때 delegated 옵션에 대한 지원 을 추가합니다.

이 출시하다 에 대한 자세한 내용은 v2.28 출시하다 노트를 참조하세요.

2.27 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • $sample 집계 연산자 에 대한 지원 을 추가합니다.

  • LINQ3 에서 직렬 변환기에 대한 Equals() 메서드를 구현합니다.

  • 오류를 방지하기 위해 읽기 및 쓰기 (write) 고려가 Atlas Search 인덱스 헬퍼 명령에 적용되지 않도록 합니다.

  • MONGODB-OIDC 인증 메커니즘 을 사용할 때 authMechanismProperties 연결 string 값에 쉼표 문자를 사용할 수 없습니다.

  • 크기가 다른 숫자가 포함된 직렬화 중 오류를 일으킨 번역 버그를 수정합니다.

  • libdl.so.2 라이브러리를 사용하는 Linux 배포판에 대한 지원 을 추가합니다.

이 출시하다 에 대한 자세한 내용은 v2.27 출시하다 노트를 참조하세요.

2.26 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • Select()Project() 집계 단계 내에서 SelectMany() 집계 메서드 사용에 대한 지원 이 추가되었습니다.

  • LINQ 쿼리에서 Dictionary.ContainsValue() 호출에 대한 지원 이 추가되었습니다.

  • 혼합 유형의 string 연결에 대한 지원 이 추가되었습니다.

  • libmongocrypt 바인딩에서 네이티브 crypto 사용을 활성화했습니다.

  • MemoryReadOnlyMemory 구조체의 직렬화 지원 추가되었습니다. 이러한 유형을 구현하는 방법에 대해 자세히 학습하려면 직렬화 가이드의 배열 직렬화 성능 향상 섹션을 참조하세요.

  • MONGODB-OIDC 인증 메커니즘 을 사용할 때 GCP ID 제공자에 대한 지원 이 추가되었습니다. 학습 내용은 엔터프라이즈 인증 메커니즘 가이드 에서 GCP IMDS 를 참조하세요.

  • NuGet 패키지 서명을 구현했습니다.

  • 가능한 경우 다른 mongos 인스턴스에 대한 읽기 및 쓰기 (write) 재시도를 구현했습니다.

2.25 드라이버 릴리스에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • Azure ID 공급자에 대한 MONGODB-OIDC 인증 메커니즘 및 자동 토큰 획득에 대한 지원이 추가되었습니다.

  • BsonClassMapSerializer 에서 일치하는 작성자를 찾을 수 없을 때 보고되는 오류 메시지에 클래스 이름이 추가되었습니다.

  • LINQ 쿼리 를 수행한 후 실행된 MQL 을 표시하기 위해 LoggedStages 필드 가 추가되었습니다.

  • srvServiceName 연결 옵션을 사용하여 "mongodb" 서비스 이름을 사용자 지정 이름으로 재정의하기 위한 지원 추가되었습니다. 자세한 학습 은 연결 옵션 가이드 참조하세요.

  • requests 매개변수가 두 번 이상 열거되지 않도록 대량 쓰기 (write) 작업의 동작이 개선되었습니다.

돌아가기

빠른 참조

이 페이지의 내용