Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Go Driver
/

リリースノート

Tip

リリースノート

バージョン間の変更とアップデートの詳細については、 ドライバーソースコードで公開された リリースノートをお読みください。

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

重要

重大な変更

Goドライバー v2.2 のリリースには重大な変更が含まれています。詳細については、 バージョン 2.2 重大な変更 を参照してください。

このリリースには、次の改善点と修正が含まれています。

  • 空の値がシリアル化されるのをグローバルに防ぐには、OmitEmpty BSONオプションを追加します。OmitEmpty グローバル フラグの設定の詳細については、 BSONガイドのBSONオプション セクションの例を参照してください。

  • Kubernetes OIDC認証のサポートを追加します。KubernetesクラスターのMongoDB認証を構成する方法の詳細については、 エンタープライズ認証メカニズムガイドの「Kubernetes OIDC」セクションを参照してください。

  • データ暗号化キー(DEK)キャッシュの有効期間を構成するサポートを追加します。DEK 管理の詳細については、 MongoDB Serverマニュアルの「 暗号化キー管理 」ガイドを参照してください。

  • error.Iserror.Asエラー管理を改善するために 関数と 関数のサポートを追加します。詳しくは、 Go APIドキュメント および エラーを参照してください。

このバージョンの変更の詳細については GitHub の v2.2 リリースノートを参照してください。

2.1 Go ドライバーのリリースには、次の改善点と修正が含まれています。

  • Client.BulkWrite メソッドを導入し、クライアントが 1 回のリクエストで複数のデータベースとコレクションにわたって複数の挿入、アップデート、削除操作を実行できるようにします。詳細については、 一括操作ガイドを 参照してください 。

  • Atlas ベクトル検索を使用してベクトルデータの挿入とクエリを簡単かつ効率的にするために、 bson.Vector タイプを導入します。bson.Vector 型を使用する例については、 Atlas ベクトル検索ガイド を参照してください。

  • ServerError ErrorCodesインターフェースを拡張して、操作実行中にサーバーによって返される重複したエラー コードのリストを返す を含めます。

  • sortスタンドアロンの更新操作と置換操作、および一括操作の UpdateOneOptions と ReplaceOptions に オプションを追加します。

このバージョンの変更の詳細については GitHub の v2.1 リリースノートを参照してください。

2.0 Goドライバーのリリースは、 OpenID Connect(OIDC)認証をサポートし、よりスムーズなクライアント側の操作タイムアウト(CST)エクスペリエンスを提供し、API の効率化、エラー説明の改善、ドライバーパッケージ構造の簡素化により、より明確で慣用的なGoコードを実装します。

これらの変更の詳細については、このセクションを参照するか、GitHub のGoドライバーソースコードで v 2.0移行ガイドを表示してください。

重要

重大な変更

Goドライバー v2.0 のリリースには重大な変更が含まれています。詳細については、バージョン 2.0 重大な変更 を参照してください。

このリリースには、次の改善点と修正が含まれています。

  • OpenID Connect(OIDC)認証のドキュメント サポート。詳細については、 OIDC 認証メカニズムのガイド を参照してください。

  • GridFS APIには mongoパッケージからアクセスできます。 以前のバージョンでは、別の gridfsパッケージからGridFS関数にアクセスできましたが、この機能はメインのドライバー mongoパッケージから統合されました。 詳細については、 GridFSガイド を参照してください。

  • すべてのオプション構造体の Commentフィールドは、string 型ではなく any 型の値を取ります。 このフィールドを設定するには、SetComment() メソッドを使用して any 型のパラメータを渡します。

  • モニタリングイベントドキュメントの更新:

    • CommandStartedEvent 構造体と CommandFinishedEvent 構造体には、接続ID を取得するための int64 タイプの単一の ServerConnectionIDフィールドがあります。

    • PoolEvent 構造体の ConnectionIDフィールドは、uint64 ではなく int64 型の値を取ります。

    サンプルイベントドキュメントを表示するには、アプリケーション イベントの監視 のガイドを参照してください。

  • Session インターフェースは 構造体に変換されます。 詳細については、「 トランザクション 」ガイドを参照してください。

  • Distinct() メソッドは、指定された型にデコードできる構造体を返します。 詳細については、「 個別の値の取得 」ガイドを参照してください。

  • IndexView.DropOne() メソッドは、存在する場合はエラーのみを返します。 以前のバージョンでは、このメソッドは削除されたインデックスの数を含むサーバー応答も返していました。 詳細については、「 インデックスガイドの「 インデックスの削除 」セクションを参照してください。

  • パッケージ内の 型のビルダ パターンをアップデートします。パターンはセッター関数のスライスを保持するため、 オプションオブジェクトにデータを直接設定することはできません。この更新では、オプションの作成方法と使用方法は通常変更されません。詳しくは、options 機能の JIRAチケットを参照してください。

  • ドライバーは、書込み操作が確認されない場合、mongo.ErrUnacknowledgedWrite 送信エラーをサポートしなくなりました。 サーバーが書込み (write)操作を確認したことを確認するには、書込み (write) メソッドによって返される結果構造体から Acknowledgedプロパティにアクセスする必要があります。

    次の例は、挿入操作の確認応答を確認する方法を示しています。

    res, err := coll.InsertOne(context.TODO(), bson.D{{"x", 2}})
    if err != nil {
    panic(err)
    }
    fmt.Print(res.Acknowledged)
  • TransactionOptionsインスタンスを作成し、そのインスタンスを SessionOptions タイプの SetDefaultTransactionOptions() メソッドに渡すことで、特定のセッションで実行されるトランザクションのオプションを設定できます。 詳細については、 トランザクションガイドの「 セッションとトランザクション オプション 」セクションを参照してください。

  • Collection.Clone() メソッドはエラーを返しません。

  • canonicalメソッドのUnmarshalExtJSON() パラメータの名前をcanonicalOnly に変更します。canonicalOnly trueを に設定すると、拡張JSON が標準モードでマーシャリングされていない場合、 メソッドはエラーを返します。false に設定すると、メソッドは標準または緩和されたJSONのマーシャリングをアンマーシャリングできます。詳細については、 「UnmartsJSON() APIドキュメント」 を参照してください。

重要

v 1.17は、予定されている最終的な1 .x バージョン リリースです。 このバージョンではセキュリティとバグが修正されますが、将来の開発と機能はドライバーの2 .x バージョンにのみ含まれます。

1.17 Go ドライバーのリリースには、次の改善点と修正が含まれています。

  • OpenID Connect(OIDC)認証のサポートを追加しました。詳細については、 OIDC 認証メカニズムのガイド を参照してください。

  • Queryable Encryption(QE)範囲クエリのサポートを追加します。 この機能を使用するには、アプリを MongoDB Server 8.0以降に接続する必要があります。 QEQueryable Encryption 範囲クエリの詳細については、MongoDB Server マニュアルの「 」を参照してください。

  • クライアントの一括書き込み機能を除く MongoDB Server 8.0のサポートを追加します。

  • IndexViewメソッドと メソッドを含むようにDropOneWithKey() DropWithKey()タイプを拡張し、名前の代わりにキー仕様を使用してインデックスを削除できるようにします。

このバージョンの変更の詳細については GitHub の v1.17 リリースノートを参照してください。

1.16 Go ドライバーのリリースには、次の改善点と修正が含まれています。

これらの変更の詳細については、 Githubの v1.16 リリースノートを参照してください。

1.15.1 Go ドライバーのパッチ リリースには、次の改善と修正が含まれています。

  • レプリカセット クラスターから切断するとrttMonitor接続が残る可能性のある接続リークを修正します。

  • クライアント全体のタイムアウトと操作タイムアウトが設定されている場合に、読み取りおよび集計操作にmaxTimeMS値を手動で指定するためのサポートを追加します。

  • 変更ストリームで呼び出しできるRemainingBatchLength()メソッドを追加します。

これらの変更の詳細については、 Githubの v1.15.1 リリースノートを参照してください。

1.15 Go ドライバーのリリースには、次の改善点と修正が含まれています。

1.14 Go ドライバーのリリースには、次の改善点と修正が含まれています。

  • 1.18より前の Go バージョンはサポートされなくなりました。

  • ハートビート タイムアウトが発生した場合、進行中の操作は先行してキャンセルされます。

  • "mongodb+srv://"プレフィックスを含む接続文字列では、SRV ホスト名に大文字を含めることができます。

1.13 Go ドライバーのリリースには、次の改善点と修正が含まれています。

  • サーバー選択と SDAM のログ。 ロギングについて詳しくは、「 ログ記録 」のドキュメントを参照してください。

  • 検索インデックスをプログラムで管理できるCollection型のメソッド。

  • event.CommandStartedEventイベントとevent.CommandFinishedEventイベントはDatabaseNameフィールドを返します。 このフィールドは、 コマンド ログ アナライザにも含まれます。

  • シャーディングされたトポロジーでは、失敗したクエリを再試行するためにサーバーを選択するときに、ドライバーは最初の試行に使用されたサーバーを除外します。 代わりに、適格なmongosインスタンスが複数ある場合、ドライバーはランダムに 1 つを選択します。 正常でない インスタンスは、自動的に選択対象から除外されます。

  • ストリーミング SDAM は、 Amazon Web Services Lambdaおよび同様のFaaS(function-as-a-service)プラットフォームではデフォルトで無効になっています。 serverMonitoringMode URI オプションを使用してモニタリングを有効にできます。

1.12 Go ドライバーのリリースには、次の改善点と修正が含まれています。

  • ドライバーはセッションを終了するときに接続の固定を解除します。 これにより、ユーザーがロード バランサーに接続しているときにトランザクションを実行するときに接続がリークされるのを防ぎます。

  • 無効な型で空のbson.RawValue型をアンマーシャリングしたり、 ReadConcernインスタンスのnilポインターをマーシャリングしたりしても、ドライバーはランタイム エラーをスローしません。

  • ログ コンポーネントとしてoptions.LogComponentAllを正しく設定すると、すべてのコンポーネントに対するログが公開されます。

重要

非推奨に関する通知

  • mongo.NewClient()メソッドとclient.Connect()メソッドは非推奨です。 mongo.Connect()メソッドを使用すると、クライアントを作成し、1 回の呼び出しで接続できます。

1.12の新機能 Go ドライバーのリリースには、次のものが含まれます。

このドライバー バージョンは、 Queryable Encryption (QE)のサポートを追加します。 QE 機能を使用するための要件の詳細については、「 Queryable Encryption ドライバーの互換性テーブル 」を参照してください。

ClientEncryption.CreateEncryptedCollection() メソッドは、新しい 暗号化されたコレクションを作成するときに、データ暗号化キーを自動的に作成します。QE 機能の使用方法については、サーバー マニュアルのQueryable Encryptionクイック スタートを参照してください。

LogSinkロギング インターフェースを使用して、接続マネジメントとコマンド実行イベントを記録できるようになりました。

詳しくは、ログガイドを参照してください。

このドライバー バージョンは、ドライバーが BSON をマーシャリングおよびアンマーシャリングする方法を指定する機能をoptionsパッケージに追加します。

次の例は、 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 が簡素化されます。 変更の詳細については、「 書込み保証 ( write concern) 」を参照してください。

  • EKS のAmazon Web Services IAM ロールによる認証をサポートします。

  • カーソルの反復処理時に取得されるバッチのサイズを指定できるようにするためのCursor.SetBatchSize()メソッドの追加。

  • MarshalValue()メソッドでマーシャリングされた BSON 値のマーシャリングを可能にするためのUnmarshalValue()メソッドの追加。

戻る

参照

項目一覧