Docs Menu
Docs Home
/ /

リリースノート

次の新機能をご覧ください。

  • バージョン3.5

  • バージョン 3.4

  • バージョン3.3

  • バージョン 3.2

  • バージョン3.1

  • バージョン 3.0

  • バージョン2.30

  • バージョン2.29

  • バージョン2.28

  • バージョン2.27

  • バージョン2.26

  • バージョン2.25

警告

v 3.5 での重大な変更

MongoDB .NET/ C#ドライバー 3.5 に重大な変更が含まれています。詳細については、「 バージョン3.5 重大な変更 」を参照してください。

3.5ドライバー リリースには、次の新機能、改善点、修正が含まれています。

  • Queryable Encryption のプレフィックス、サフィックス、サブストリング クエリの実験的なサポートを追加します。これらの機能は不安定であり、一般提供(GA)されるまでセキュリティは保証されません。実験的なワークロードでのみ使用してください。QE の詳細については、「 使用中の暗号化 」を参照してください。

  • CsfileSchemaBuilderクラスを MongoDB.Driver.Encryptionパッケージに追加します。このクラスを使用して、次の例に示すように、 クライアント側フィールド レベル暗号化(CSFLE)用のJSONスキーマを作成できます。

    var builder = CsfleSchemaBuilder.Create(schemaBuilder =>
    {
    schemaBuilder.Encrypt<Patient>(_collectionNamespace, builder =>
    {
    builder
    .EncryptMetadata(keyId: _keyId)
    .Property(p => p.MedicalRecords, BsonType.Array,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Random)
    .Property("bloodType", BsonType.String,
    algorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Random)
    .Property(p => p.Ssn, BsonType.Int32,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic)
    .Property(p => p.Insurance, innerBuilder =>
    {
    innerBuilder
    .Property(i => i.PolicyNumber, BsonType.Int32,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic);
    })
    .PatternProperty("_PIIString$", BsonType.String, EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic)
    .PatternProperty("_PIIArray$", BsonType.Array, EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Random)
    .PatternProperty(p => p.Insurance, innerBuilder =>
    {
    innerBuilder
    .PatternProperty("_PIIString$", BsonType.String,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic)
    .PatternProperty("_PIINumber$", BsonType.Int32,
    algorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic);
    });
    });
    });
    var schema = builder.Build();

    CSFLE の詳細については、「 使用中の暗号化 」を参照してください。

  • 次の LINQ メソッドを追加します。

    • Median(): 値のシーケンスの中央値を計算します。

    • Percentile(): 値のシーケンスの複数のパーセンタイルを計算します。

    これらのメソッドを使用して、$group$setWindowFields の集計ステージの一部として計算を実行できます。

  • 新しい昇順()降順()メソッドのオーバーロードをSortDefinitionBuilderクラスに追加します。$sort 更新演算子を使用する場合に、これらのメソッドを使用して要素を値で並べ替えることができます。

  • SOCKS5 プロキシを使用してMongoDBに接続するためのサポートを追加します。SOCKS5 接続設定は、接続文字列または MongoClientSettings.Socks5ProxySettings プロパティを使用して指定できます。

  • カーソルと LINQ で IAsyncEnumerable<T> インターフェースのサポートを追加します。await foreach構文を使用してクエリ結果を非同期に反復処理できます。

  • BinaryVectorReader クラスと BinaryVectorWriter クラスにビッグ エンディアンのサポートを追加します。

  • 今後のリリースでクライアント側操作タイムアウト(COT)をサポートする準備として内部サブシステムを変更します。これらの変更は下位互換性があり、既存のドライバーの動作に影響を与えないことが予想されます。次の問題のいずれかが発生した場合は、 MongoDBにお問い合わせください。

    • 操作が予期せずタイムアウトした、または期待どおりにタイムアウトしなかった

    • データベース呼び出しで異常に遅延したり、ハングしたりする

    • コマンドをキャンセルする際の動作の違い

    サポートを見つける最適な方法については、「問題とヘルプ」ページを参照してください。可能であれば、ドライバーのログと複製を提供してください。

このリリースの詳細については、Github で v 3.5リリースノートを参照してください。

3.4ドライバー リリースには、次の新機能、改善点、修正が含まれています。

  • 集計の実行時にタイプを変換するための Mql.Convert() LINQ メソッドを追加します。詳細については、 LINQガイドの $convert セクションを参照してください。

  • KeyValuePair.Create() LINQ メソッドのサポートを追加します。

  • $geoNear集計ステージを構築するために GeoNear()集計ビルダ メソッドを追加します。例を表示するには、 MongoDB Serverマニュアルの $geoNear参照を参照してください。

  • LINQ クエリでそのインターフェースを実装する型への、インターフェースからのキャストをサポートします。

  • LINQ で Dictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection) コンストラクタをサポートします。

  • MongoDB Search クエリに次のオプションを追加します。

    • MatchCriteria SearchTextOptions では、Text() 演算子メソッドに渡されるタームの一致条件を設定します。

    • Synonyms Phrase() 演算子メソッドを使用するときに、シノニム(同意語)マッピング定義の名前を設定するために、SearchPhraseOptions で を使用します。

    MongoDB Search クエリの実行の詳細については、 「 MongoDB Searchガイド 」を参照してください。

  • IQueryable<Derived> オブジェクトを IQueryable<Base> にキャストした後、LINQ クエリをサポートします。

  • MongoDB Search 演算子の動作を修正し、事前定義されたシリアライザーではなく、構成済みのシリアライザーを使用します。以前の動作を使用するには、次のオプションを設定します。

    SearchDefinition.UseConfiguredSerializers(false);

このリリースの詳細については、Github で v 3.4リリースノートを参照してください。

3.3ドライバー リリースには、次の新機能が含まれています。

  • ChangeStreamDocumentクラスの create イベント用に作成されたオブジェクトのタイプを示す新しい NamespaceTypeフィールドを追加します。変更ストリームの詳細については、 「データ変更の監視」 ガイドを参照してください。

  • 次の使用中の暗号化機能を追加します。

    • $lookup集計ステージのサポート

    • データ暗号化のキーキャッシュの有効期間を構成する ClientEncryptionOptionsプロパティ

    使用中の暗号化の詳細については、使用中の暗号化ガイドを参照してください。

  • 次の LINQ 機能を追加します。

    • SkipWhile()TakeWhile() LINQ集計メソッドをサポートします。詳細については、 LINQガイドの「条件付きでのスキップ」および「条件付きの制限」セクションを参照してください。

    • LINQ クエリでの $sigmoid式のサポート。

    • 基礎となるデータ型に関係なく、string としてシリアル化された辞書キーにアクセスするための LINQ構文を使用するためのサポート。

  • $rankFusion集計ステージのサポートを追加します。これにより、複数のパイプラインからの組み合わせた結果にランクベースの結果スコアリングが可能になります。

  • フィルター パラメータのみを受け取る メソッドのオーバーロードを提供することで、 値に対して直接 $elemMatchElemMatch() クエリのサポートを追加します。詳しくは、1 つのドキュメントの配列を更新 および 多くのドキュメントの配列を更新 を参照してください。

  • OfType<T>() メソッドと is 演算子を使用してスカラー弁別子の型を確認するためのサポートを追加します。

このリリースの詳細については、Github で v 3.3リリースノートを参照してください。

3.2ドライバー リリースには、次の新機能が含まれています。

  • オブジェクトシリアライザーによって直列化および逆直列化できるタイプを指定できる新しい ObjectSerializerAllowedTypesConvention 規則を追加します。規則の詳細については、「 規則ガイド 」を参照してください。

  • EnumRepresentationConventionクラスに新しいコンストラクターを追加します。これにより、topLevelOnly パラメーターを使用して、規則が列挙プロパティのみに適用されるか、列挙のコレクションを含むすべてのプロパティに適用されるか指定できます。

    次の例に示すように、新しいコンストラクタを使用して EnumRepresentationConventionクラスをインスタンス化できます。

    EnumRepresentationConvention(BsonType representation, bool topLevelOnly);
  • すべてのフィールドを取得してからフィルタリングするのではなく、サーバーから必須フィールドのみが取得されるようにクライアント側のプロジェクションを最適化します。

  • MongoDB ベクトル検索でバイナリベクトル表現をサポートするために次のクラスを追加します。

    • BinaryVectorFloat32

    • BinaryVectorInt8

    • BinaryVectorPackedBit

    .NET/ C#ドライバーでMongoDB ベクトル検索 の詳細については、「 MongoDB ベクトル検索クエリの実行 」ガイドを参照してください。

  • DocumentFormatプロパティを DateOnlySerializer に追加します。このプロパティを使用すると、ドライバーが DateOnly 値を直列化する方法をカスタマイズできます。このリリースでは、プロパティレベルで DateOnly 値の直列化動作をカスタマイズする [BsonDateOnlyOptions()] 属性も追加されています。詳細については、 POCOガイドの 「カスタム DateOnly 直列化」 セクションを参照してください。

このリリースの詳細については、Github で v 3.2リリースノートを参照してください。

3.1ドライバー リリースには、次の新機能が含まれています。

  • System.Collections.不変名前名前空間内の不変コレクション用の新しいデフォルトライザーを追加します。ドライバーは ImmutableArray オブジェクトを直列化できるようになり、他の不変コレクションの直列化のメモリ効率が向上しました。

  • SearchIndexTypeプログラムによるMongoDB ベクトル検索インデックスの作成をサポートするために タイプを追加します。詳細については、「 MongoDB Search とMongoDB ベクトル検索インデックスのガイド 」を参照してください。

  • 演算子のMongoDB Searchequals ビルダでトークンフィールドタイプと配列フィールド式のサポートを追加します。 .NET/ C#ドライバーでMongoDB Search を使用する方法の詳細については、 「 MongoDB Search 」を参照してください。

  • 次のMongoDB Search クエリのサポートを追加します。

    • nullGuid の値での Equals() 演算子メソッドの使用

    • Guid 値での In() 演算子メソッドの使用

    これらのメソッドの詳細については、 MongoDB Searchガイドの「 MongoDB Search 演算子とコレクター」のセクションを参照してください。

  • MongoDB Search で連続ページ分割のサポートを追加しました。

  • 3 未満の有効な SRV ホスト名のサポートを追加します。

  • MongoDB Query APIフィルターで ExistsIsMissingIsNullOrMissing メソッドのサポートを追加します。

  • 完全一致(enn)ベクトル検索のサポートを追加します。 EXNベクトル検索の詳細については、 MongoDB Search ドキュメントの「 ベクトル検索クエリの実行 」を参照してください。

  • 更新操作と置換操作のソート オプションを追加します。この変更により、単一のドキュメント を更新または置換しようとする際に、複数のドキュメントがフィルターに一致する場合に並べ替え順序を設定できます。詳しくは、「Update One」および「Update Many」のガイドを参照してください。

このリリースの詳細については、v3.1 リリースノートを参照してください。

警告

v 3.0 での重大な変更

v 3.0 ドライバーに重大な変更が含まれています。詳細については、 バージョン3.0 の重大な変更 を参照してください。

3.0ドライバー リリースには、次の新機能が含まれています。

  • LINQ クエリを クエリAPIに変換するためのオプションを指定する MongoClientSettings.TranslationOptions 接続オプションを追加します。詳細については、「 接続オプションの指定 」を参照してください。

  • 半精度の浮動小数点数を表す Half 型のサポートを追加します。このタイプは.NET 5 以降で使用可能です。Half 型の詳細については、MSDN の Hat struct API参照ページを参照してください。

  • IMongoClient インターフェースは IDisposable インターフェースを継承します。その結果、MongoClientクラスや IMongoClient インターフェースを実装するその他のクラスには、 コマンド.ose()`` を更新するために渡される Disp- Adds support for the ``sort オプションが含まれています。メソッドを使用して、クライアントを破棄します。このメソッドは、基礎のクラスターとMongoDBサーバーへの接続を破棄しません。クラスターと接続を破棄するには、ClusterRegistry.UnregisterAndDisposeCluster() メソッドを呼び出します。IDisposable インターフェースの実装は実験的なものです。

    IDisposable インターフェースと Dispose() メソッドの使用の詳細については、MSDN のパターンを無効にする を参照してください。

  • 時間要素のない日付値を表す DateOnly 型のサポートを追加します。このタイプは.NET 6 以降で使用可能です。DateOnly 型の詳細については、DateOnly 構造体 を参照してください。MSDN のAPI参照ページ。

  • 日付コンポーネントのない時間値を表す TimeOnly 型のサポートを追加します。このタイプは.NET 6 以降で使用可能です。 TimeOnly 型の詳細については、「TimeOnly 構造」。を参照してください。MSDN のAPI参照ページ。

  • LINQ 3 プロバイダーとともに、Find() メソッド、Select() メソッド、または Project()集計ステージを使用する場合、暗黙的クライアント側プロジェクションのサポートを追加します。以前のバージョンのドライバーでは、ToEnumerable() メソッドまたは AsEnumerable() メソッドを呼び出した後にのみ、LINQ 3 プロバイダーを使用してクライアント側のプロジェクションを実行できました。

    ドライバー メソッドでクライアント側プロジェクションを有効にして使用する方法については、対応するタブを選択します。

    // 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) });

    Tip

    MongoClientSettings

    クライアント 上のすべてのクエリでクライアントクライアント側プロジェクションを有効にするには、次の例に示すように、MongoClientSettingsオブジェクトの TranslationOptionsプロパティを設定します。

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

    .NET/ C#ドライバーで集計パイプラインを使用する方法の詳細については、集計操作を参照してください。

  • 一括書き込み操作用の MongoClient APIを追加します。一括書込み (write) 操作の詳細については、「 一括書込み (write) 操作 」を参照してください。

このリリースの詳細については、v3.0 リリースノートを参照してください。

2.30 ドライバーは新機能やバグ修正を導入しません。その目的は、v 3.0 で削除されたパブリック API を廃止予定としてマークすることで、 .NET/ C#ドライバーの v 3 .x への移行を容易にすることです。

2.29ドライバー リリースは MongoDB Server バージョン8.0のサポートを追加し、次の新機能を含みます。

  • Queryable Encryption 範囲プロトコルの v 2のサポートを追加します。

  • Queryable Encryption の範囲インデックスのサポートを追加します。 Queryable EncryptionQueryable Encryptionの詳細については、MongoDB Server マニュアルの「 」を参照してください。

このリリースの詳細については、v2.29 リリースノートを参照してください。

警告

v 2.28の潜在的な重大な変更

  • すべての.NET/ C#ドライバー コンポーネントには厳密な名前が付けられます。 アプリケーションに複数の.NET/ C#ドライバーのバージョンを参照する依存関係がある場合は、それらの依存関係を管理するためのバインディング リダイレクトを作成する必要があります。 詳細については、「 バージョン2.28.0 重大な変更 」を参照してください。

2.28ドライバー リリースには、次の新機能が含まれています。

  • Nullable<T>に関連する追加の数値変換のサポートを追加します。

  • CSFLE または Queryable Encryptionに KMIP を使用する場合に、 delegatedオプションのサポートを追加します。

このリリースの詳細については、v2.28 リリースノートを参照してください。

2.27ドライバー リリースには、次の新機能が含まれています。

  • $sample集計演算子のサポートを追加しました。

  • LINQ 3のシリアライザーのEquals()メソッドを実装します。

  • エラーを回避するために、読み取り保証と書込み保証がMongoDB Search ヘルパー コマンドに適用されないようにします。

  • MONGODB-OIDC 認証メカニズムを使用する場合、authMechanismProperties 接続string値でカンマ文字の使用を禁止します。

  • 異なるサイズの数値に関係する直列化中にエラーを発生させる変換バグを修正します。

  • libdl.so.2ライブラリを使用する Linux ディストリビューションのサポートを追加します。

このリリースの詳細については、v2.27 リリースノートを参照してください。

2.26ドライバー リリースには、次の新機能が含まれています。

  • Select()Project()集計ステージ内でSelectMany()集計メソッドを使用するためのサポートを追加しました。

  • LINQ クエリでDictionary.ContainsValue()呼び出しのサポートを追加しました。

  • 混合型の string 連結のサポートを追加しました。

  • libmongocryptバインディングでネイティブcryptoの使用を有効にしました。

  • Memory 構造体と ReadOnlyMemory 構造体の直列化のサポートを追加しました。これらのタイプの実装の詳細については、直列化ガイドの「配列直列化パフォーマンスの向上」セクションを参照してください。

  • MONGODB-OIDC認証メカニズムを使用する場合の GCP IdP のサポートを追加しました。 詳細については、エンタープライズ認証メカニズム ガイドの「 GCP IMDS 」を参照してください。

  • NuGet パッケージの署名を実装しました。

  • 可能な場合、他のmongosインスタンスへの読み取りおよび書き込みの再試行を実装しました。

2.25ドライバー リリースには、次の新機能が含まれています。

  • Azure Identity Provider のMONGODB-OIDC認証メカニズムと自動トークン取得のサポートを追加しました。

  • BsonClassMapSerializerが一致する作成者を見つけられない場合に報告されるエラー メッセージにクラス名を追加しました。

  • LINQ クエリの実行後に実行される MQL を表示するためにLoggedStagesフィールドを追加しました。

  • srvServiceName 接続オプションを使用して、"mongodb" サービス名をカスタム サービス名で上書きするためのサポートを追加しました。詳細については、「接続オプションの指定」ガイドを参照してください。

  • 一括書き込み操作の動作が改善され、リクエスト パラメータが複数回列挙されなくなります。

戻る

クイック リファレンス

項目一覧