次の新機能をご覧ください。
2.3の新機能
重要
Goドライバー v2.3 のリリースは、 MongoDB 4.0 をサポートする最後のリリースです。Goドライバー v2.4 リリースにはMongoDB 4.2 以降が必要です。Goドライバー v2.3 リリースの最小GoバージョンはGo 1.19 です。
このリリースには、次の改善点と修正が含まれています。
操作タイムアウト以上の
maxAwaitTimeMS値を使用してcursor.Next()を呼び出すとソケット タイムアウトが発生する問題を修正します。ドライバーはこれらの呼び出しを短縮して、タイムアウト エラーを防ぐようになりました。Element.StringN()が期待どおりに string を切り捨てない問題を修正しました。bson.Unmarshal()のパフォーマンスを向上させます。
このバージョンの変更の詳細については、 Githubの v2.3 リリースノート を参照してください。
2.2の新機能
このリリースには、次の改善点と修正が含まれています。
空の値がシリアル化されるのをグローバルに防ぐには、
OmitEmptyBSONオプションを追加します。OmitEmptyグローバル フラグの設定の詳細については、 BSONガイドのBSONオプション セクションの例を参照してください。Kubernetes OIDC認証のサポートを追加します。KubernetesクラスターのMongoDB認証を構成する方法の詳細については、 エンタープライズ認証メカニズムガイドの「Kubernetes OIDC」セクションを参照してください。
データ暗号化キー(DEK)キャッシュの有効期間を構成するサポートを追加します。DEK 管理の詳細については、 MongoDB Serverマニュアルの「 暗号化キー管理 」ガイドを参照してください。
エラー管理を改善するために
error.Is関数とerror.As関数のサポートを追加します。詳しくは、 Go APIドキュメント および エラーを参照してください。
このバージョンの変更の詳細については、 Githubの v2.2 リリースノート を参照してください。
2.1の新機能
2.1 Go ドライバーのリリースには、次の改善点と修正が含まれています。
Client.BulkWrite メソッドを導入し、クライアントが 1 回のリクエストで複数のデータベースとコレクションにわたって複数の挿入、アップデート、削除操作を実行できるようにします。詳細については、一括操作ガイドを参照してください。
Atlas ベクトル検索を使用してベクトルデータの挿入とクエリを簡単かつ効率的にするために、 bson.Vector タイプを導入します。
bson.Vector型を使用する例については、Atlas ベクトル検索ガイド を参照してください。ServerError インターフェースを拡張して、操作実行中にサーバーによって返される重複したエラー コードのリストを返す
ErrorCodesを含めます。sortスタンドアロンの更新操作と置換操作、および一括操作の UpdateOneOptions と ReplaceOptions に オプションを追加します。
このバージョンの変更の詳細については、 Githubの v2.1 リリースノート を参照してください。
2.0の新機能
2.0 Goドライバーのリリースは、 OpenID Connect(OIDC)認証をサポートし、よりスムーズなクライアント側の操作タイムアウト(CST)エクスペリエンスを提供し、API の効率化、エラー説明の改善、ドライバーパッケージ構造の簡素化により、より明確で慣用的なGoコードを実装します。
これらの変更の詳細については、このセクションを参照するか、 GithubのGoドライバーソースコードでv2.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()メソッドはエラーを返しません。UnmarshalExtJSON()メソッドのcanonicalパラメータの名前をcanonicalOnlyに変更します。canonicalOnlyをtrueに設定すると、拡張JSON が標準モードでマーシャリングされていない場合、 メソッドはエラーを返します。falseに設定すると、メソッドは標準または緩和されたJSONのマーシャリングをアンマーシャリングできます。詳細については、 「UnmartsJSON() APIドキュメント」 を参照してください。
1.17の新機能
重要
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の新機能
1.16 Go ドライバーのリリースには、次の改善点と修正が含まれています。
Atlas Search インデックスの作成時、インデックス タイプを指定するためのサポートを追加しました。
zstd圧縮アルゴリズムが有効になっている場合、メモリ使用量を削減します。一部の依存関係要件をアップグレードします。アップグレードのリストについては、v1.16 リリースノートの「アップグレードの依存関係」セクションを参照してください。
これらの変更の詳細については、 Githubの v1.16 リリースノート を参照してください。
1.15.1の新機能
1.15.1 Go ドライバーのパッチ リリースには、次の改善と修正が含まれています。
レプリカセット クラスターから切断すると
rttMonitor接続が残る可能性のある接続リークを修正します。クライアント全体のタイムアウトと操作タイムアウトが設定されている場合に、読み取りおよび集計操作に
maxTimeMS値を手動で指定するためのサポートを追加します。変更ストリームで呼び出しできる
RemainingBatchLength()メソッドを追加します。
これらの変更の詳細については、 Githubの v1.15.1 リリースノートを参照してください。
1.15の新機能
1.15 Go ドライバーのリリースには、次の改善点と修正が含まれています。
接続チャーンは、
timeoutMS接続オプションを指定するか、SetTimeout() 関数を呼び出して、クライアント全体のタイムアウトを設定することで軽減できます。タイムアウトが設定されている場合、ドライバーは操作がタイムアウトした後に接続の再利用を試み、最大 1 秒間待機して接続が再利用できるかどうかを確認してから、接続を閉じます。接続プール イベントには、チェックアウト期間と接続を確立するための合計時間数を測定するための
Durationフィールドが含まれています。
1.14の新機能
1.14 Go ドライバーのリリースには、次の改善点と修正が含まれています。
1.18より前の Go バージョンはサポートされなくなりました。
ハートビート タイムアウトが発生した場合、進行中の操作は先行してキャンセルされます。
"mongodb+srv://"プレフィックスを含む接続文字列では、SRV ホスト名に大文字を含めることができます。
1.13の新機能
1.13 Go ドライバーのリリースには、次の改善点と修正が含まれています。
サーバー選択と SDAM のログ。 ロギングについて詳しくは、「 ログ記録 」のドキュメントを参照してください。
検索インデックスをプログラムで管理できる
Collection型のメソッド。event.CommandStartedEventイベントとevent.CommandFinishedEventイベントはDatabaseNameフィールドを返します。 このフィールドは、 コマンド ログ アナライザにも含まれます。シャーディングされたトポロジーでは、失敗したクエリを再試行するためにサーバーを選択するときに、ドライバーは最初の試行に使用されたサーバーを除外します。 代わりに、適格な
mongosインスタンスが複数ある場合、ドライバーはランダムに 1 つを選択します。 正常でない インスタンスは、自動的に選択対象から除外されます。ストリーミング SDAM は、 Amazon Web Services Lambdaおよび同様のFaaS(function-as-a-service)プラットフォームではデフォルトで無効になっています。
serverMonitoringModeURI オプションを使用してモニタリングを有効にできます。
1.12.1の新機能
1.12 Go ドライバーのリリースには、次の改善点と修正が含まれています。
ドライバーはセッションを終了するときに接続の固定を解除します。 これにより、ユーザーがロード バランサーに接続しているときにトランザクションを実行するときに接続がリークされるのを防ぎます。
無効な型で空の
bson.RawValue型をアンマーシャリングしたり、ReadConcernインスタンスのnilポインターをマーシャリングしたりしても、ドライバーはランタイム エラーをスローしません。ログ コンポーネントとして
options.LogComponentAllを正しく設定すると、すべてのコンポーネントに対するログが公開されます。
1.12の新機能
重要
非推奨に関する通知
mongo.NewClient()メソッドとclient.Connect()メソッドは非推奨です。mongo.Connect()メソッドを使用すると、クライアントを作成し、1 回の呼び出しで接続できます。
1.12の新機能 Go ドライバーのリリースには、次のものが含まれます。
Queryable Encryption
このドライバー バージョンは、 Queryable Encryption (QE)のサポートを追加します。 QE 機能を使用するための要件の詳細については、「 Queryable Encryption ドライバーの互換性テーブル 」を参照してください。
ClientEncryption.CreateEncryptedCollection() メソッドは、新しい 暗号化されたコレクションを作成するときに、データ暗号化キーを自動的に作成します。QE 機能の使用方法については、サーバー マニュアルのQueryable Encryptionクイック スタートを参照してください。
ログ記録インターフェース
LogSinkロギング インターフェースを使用して、接続マネジメントとコマンド実行イベントを記録できるようになりました。
詳しくは、ログガイドを参照してください。
追加の BSON マーシャリング オプション
このドライバー バージョンは、ドライバーが BSON をマーシャリングおよびアンマーシャリングする方法を指定する機能をoptionsパッケージに追加します。
次の例は、 Clientで BSON オプションを設定する方法を示しています。 オプションは、次の動作を指定します。
bson構造体タグが存在しない場合、ドライバーはjson構造体タグにフォールバックします。ドライバーは
nilGo マップ型を空の BSON ドキュメントとしてマーシャリングします。ドライバーは
nilGo スライス タイプを空の BSON 配列としてマーシャリングします。
bsonOpts := &options.BSONOptions{ UseJSONStructTags: true, NilMapAsEmpty: true, NilSliceAsEmpty: true, } options.Client().SetBSONOptions(bsonOpts)
BSONOptions 型を指定して実装する方法の完全な例については、 APIドキュメントを参照してください。
簡略化された書込み保証 (write concern) の仕様
このドライバー バージョンにより、 WriteConcern API が簡素化されます。 変更の詳細については、「 書込み保証 ( write concern) 」を参照してください。
追加の変更
EKS のAmazon Web Services IAM ロールによる認証をサポートします。
カーソルの反復処理時に取得されるバッチのサイズを指定できるようにするための
Cursor.SetBatchSize()メソッドの追加。MarshalValue()メソッドでマーシャリングされた BSON 値のマーシャリングを可能にするためのUnmarshalValue()メソッドの追加。