Docs Menu
Docs Home
/ / /
Go Driver

新機能

項目一覧

  • 1.17の新機能
  • 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の新機能

Tip

リリースノート

バージョン間の変更や更新の詳細については、 リリースノート をお読みください ドライバー ソース コードで公開されます。

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

重要

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

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

  • OpenID Connect(OIDC)認証のサポートを追加しました。 詳細については、エンタープライズ認証メカニズム ガイドの MONGODB-OIDCセクションを参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

  • 接続チャーンは、timeoutMS 接続オプションを指定するか、 SetTimeout() を呼び出すことで、クライアント全体のタイムアウトを設定することで軽減できます。 関数を使用します。タイムアウトが設定されている場合、ドライバーは操作がタイムアウトした後に接続の再利用を試み、最大 1 秒間待機して接続が再利用できるかどうかを確認してから、接続を閉じます。

  • 接続プール イベントには、チェックアウト期間と接続を確立するための合計時間数を測定するためのDurationフィールドが含まれています。

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 機能の使用方法については、サーバー マニュアルの「クイック スタート」を参照してください。

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()メソッドの追加。

重要

バージョン1.11.9以降にアップグレード

バージョン1.11.0 ドライバーの1.11.2は、 CommandErrorWriteExceptionなどのデータベース エラー タイプのRawフィールドを読み取るときに未定義の動作を引き起こす可能性があるバグのため、リダイレクトされました。

ドライバーのバージョン1.11.8は、 1.12.1向けの変更が誤って含まれているため、取り消されています。

削減されたバージョンのドライバーを使用している場合は、バージョン1.11.9以降にアップグレードします。

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

  • MongoDB バージョン3.5以前のサポートを廃止します。

  • Go バージョン1.12以前のサポートを廃止します。

  • 次の内容を含む、 Timeout API と動作を改善しました。

    • アプリケーションの回復力を高めるために再試行ロジックを変更しました。

    • より多くのタイムアウト エラーをキャッチするための拡張mongo.IsTimeoutエラー ヘルパー

    • SetReadDeadlineSetWriteDeadlineを使用する代わりにコンテキストを受け取る新しい GridFS メソッド。

  • 操作実行中にメモリ割り当てを削減しました。

  • 関連付けられたMongoDB接続stringにユーザー名とパスワードが含まれている場合に SRV レコードの変更を妨げる SRV ポーリングのバグを修正します。

  • キー管理サービスを使用する場合、 サービスGCP アカウントをサポートします。GCP

  • 関数と 関数を使用する場合のサーバー側リソースCursor.AllSession.WithTransaction クリーンアップが改善されました。

  • SERVICE_HOST Kerberos接続 オプションで有効になっているauthMechanismProperties string認証パラメータの仕様。

  • BSON ドキュメントに UTC タイムスタンプ フィールドが含まれている場合のタイムスタンプ用に、 bson.Raw.String()メソッドからの出力を拡張 JSON タイプに修正しました。

  • 読み取り保証 (read concern "available"または"linearizable"を使用して読み取りを再試行する際の競合を解決しました。

重要

バージョン1.10.1以降にアップグレード

1.10.1 Goドライバーは、GCPKMS または でホストされている カスタマー マスター キー で暗号化された データ暗号化キーAzure Key Vault をローテーションするときにデータが破損する可能性があるバグをパッチします。

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

  • MongoDB 6.0との完全互換性。

  • 自動暗号化および手動暗号化の新しいオプションを含む、 Queryable Encryptionに関連する新機能のサポート

  • mongocryptdプロセスを置き換える新しい自動暗号化共有ライブラリのサポート。 共有ライブラリには MongoDB v 6.0が必要です Enterprise 以降とlibmongocrypt 1.5.0以降。

  • クラスター化されたインデックス作成のサポート。

  • 暗号化キー管理用の新しい API とClientEncryptionエンティティ操作。

  • クライアントを介して送信される各操作にデフォルトのコンテキスト タイムアウトを設定するTimeoutクライアント オプション。

  • 空の型をデコードするときに、データをデフォルトでprimitive.Mまたはprimitive.Dに設定するパッチ。

  • 自体のテキスト表現にアンマーシャリング可能なデータの非定型のマップキー タイプのエンコードをサポートします。

  • 次のようなパフォーマンスの最適化。

    • 変更ストリーム イベント における更新の前後で、完全なドキュメント リクエストが改善されました。

    • CRNUUIDの生成を改善しました。

    • ワイヤ メッセージを圧縮する際のメモリ消費を削減しました。

  • 頻繁に発生する問題のサポートのトラブルシューティング。

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

  • 接続ストームの軽減を改善しました。

  • Custom 変更ストリーム操作と集計操作のオプション。

  • Let 集計式で使用するパラメータを指定するほとんどの CRUD コマンドの オプション。 Letは、ドキュメント フィールドを参照せずにパラメータ名を定数式または閉じた式の値にマッピングするドキュメントである必要があります。 MongoDB v5.0 以降が必要です。

  • CursorSingleResultマーシャリング可能で nil 以外の BSON ドキュメントから インスタンスと インスタンスを作成する新しいコンストラクター関数。

1.8 Go ドライバー リリースの新機能は次のとおりです。

  • MongoDB 5.1との完全互換性。

  • CSFLE用の KMS プロバイダーとしてKMIPをサポートします。

  • 低操作Contextタイムアウトと接続チャーンを削減するためにドライバー接続プールを再設計しました。 動作の変化には、次のものが含まれます。

    • 新しい接続の作成はconnectTimeoutMSにタイムアウトします。

    • 最大で 2 つの新しい接続を同時に確立できます。

  • 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 ドライバーのリリースには、次のものが含まれます。

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

  • クライアント側のフィールドレベル暗号化による Azure およびGCPキー管理サービスのサポート

  • 重複キー エラー、タイムアウト、ネットワーク エラーを検出するための新しいエラー API

  • MongoDB 配置の変更を監視するためのサーバー モニタリング。

  • ヒント オプション、ソート オプション、またはインデックス作成に使用される複数のキーを含むマップでの予期しない動作を防ぐためのエラー。

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

  • MongoDB 4.4との完全互換性。

  • ステープリングされた OCSP 検証と非ステープリングされた OCSP 検証をサポートします。

  • OCSP レスポンダーがドライバーからアクセスできず、ステープリングされた応答がない場合に、HTTP リクエストの送信を無効にする新しいtlsDisableOCSPEndpointCheck=true URI オプション。

  • BSON アン マーシャリング中に発生したエラーに関する追加のコンテキスト。

  • のさまざまなドライバー エラー タイプに適したUnwrap関数。

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

  • mgocompat パッケージを使用すると、 globalsign/mgo/bsonと互換性のある BSON レジストリをエクスポートできます。このレジストリはClientOptions.SetRegistryメソッドを呼び出すことで使用できます。

  • RegisterTypeEncoder およびRegisterHookEncoderメソッド。これらは非推奨のRegisterEncoderメソッドを置き換えます。 対応する変更が行われ、 RegisterDecoderが置き換えられました。

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

  • CSFLE のサポート。

  • bson.MarshalValue Go 型を BSON にマーシャリングする関数。

  • StringCodec、非 string フィールドを 構造体内の string フィールドにデコードできます。

  • IntCodecUIntCodecBoolCodecFloatCodecmgocompatに追加され、コーデックが数値とブール値の間で変換できるようになります。

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

  • MongoDB 4.2との完全互換性。

  • 維持性とパフォーマンスを向上させるために下位レベルのドライバーの実装を再設計しました。

  • さまざまな接続と接続プール イベントを監視するための 接続監視と Pooling 仕様で、効率を向上させます。

このリリースでは新機能は追加されません。

戻る

クイック リファレンス