新機能
次の新機能をご覧ください。
2.0の新機能
2.0 Goドライバーのリリースは、 OpenID Connect(OIDC)認証をサポートし、よりスムーズなクライアント側の操作タイムアウト(CST)エクスペリエンスを提供し、API の効率化、エラー説明の改善、ドライバーパッケージ構造の簡素化により、より明確で慣用的なGoコードを実装します。
これらの変更の詳細については、このセクションを参照するか、GitHub のGoドライバーソースコードで v 2.0移行ガイドを表示してください。
重要
重大な変更
Go Driver v2.0 のリリースでは、次の重大な変更が導入されています。
mongo.Connect()
は、Context パラメータを受け入れません。このメソッドは オプションオブジェクトのみを受け入れます。このメソッドを使用する例については、接続ガイドの「 接続サンプル コード」を参照してください。Cursor.SetMaxTime()
メソッドの名前がCursor.SetMaxAwaitTime()
に変更されます。このメソッドは、追尾可能 (tailable) カーソルを使用して、 Cappedコレクションから取得された新しいドキュメントをサーバーが待機する最大時間を指定します。操作固有のタイムアウト オプションを排除します。次のフィールドと setter メソッドはドライバーから削除されました。
AggregateOptions.MaxTime
,AggregateOptions.SetMaxTime()
ClientOptions.SocketTimeout
,ClientOptions.SetSocketTimeout()
CountOptions.MaxTime
,CountOptions.SetMaxTime()
DistinctOptions.MaxTime
,DistinctOptions.SetMaxTime()
EstimatedDocumentCountOptions.MaxTime
,EstimatedDocumentCountOptions.SetMaxTime()
FindOptions.MaxTime
,FindOptions.SetMaxTime()
FindOneOptions.MaxTime
,FindOneOptions.SetMaxTime()
FindOneAndReplaceOptions.MaxTime
,FindOneAndReplaceOptions.SetMaxTime()
FindOneAndUpdateOptions.MaxTime
,FindOneAndUpdateOptions.SetMaxTime()
GridFSFindOptions.MaxTime
,GridFSFindOptions.SetMaxTime()
CreateIndexesOptions.MaxTime
,CreateIndexesOptions.SetMaxTime()
DropIndexesOptions.MaxTime
,DropIndexesOptions.SetMaxTime()
ListIndexesOptions.MaxTime
,ListIndexesOptions.SetMaxTime()
SessionOptions.DefaultMaxCommitTime
,SessionOptions.SetDefaultMaxCommitTime()
TransactionOptions.MaxCommitTime
,TransactionOptions.SetMaxCommitTime()
WriteConcern.WTimeout
代わりに、クライアントまたはコンテキスト内でタイムアウトを設定できます。詳細については、「 接続オプションガイド 」の「 シングル タイムアウト設定 」セクションを参照してください。
このリリースには、次の改善点と修正が含まれています。
OpenID Connect(OIDC)認証のサポート。詳細については、 エンタープライズ認証メカニズムガイドの「 MONGODB-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
インスタンスを作成し、そのインスタンスをSetDefaultTransactionOptions()
タイプのSessionOptions
メソッドに渡すことで、特定のセッションで実行されるトランザクションのオプションを設定できます。詳細については、 トランザクションガイドの「 セッションとトランザクション オプション 」セクションを参照してください。Collection.Clone()
メソッドはエラーを返しません。canonical
メソッドのUnmarshalExtJSON()
パラメータの名前をcanonicalOnly
に変更します。canonicalOnly
true
を に設定すると、拡張JSONが標準モードでマーシャリングされていない場合、 メソッドはエラーを返します。false
に設定すると、メソッドは標準または緩和されたJSONのマーシャリングをアンマーシャリングできます。詳細については、 「UnmartsJSON() APIドキュメント」 を参照してください。
1.17の新機能
重要
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の新機能
1.16 Go ドライバーのリリースには、次の改善点と修正が含まれています。
Atlas Search インデックスの作成時、インデックス タイプを指定するためのサポートを追加しました。
zstd
圧縮アルゴリズムが有効になっている場合、メモリ使用量を削減します。一部の依存関係要件をアップグレードします。 アップグレードのリストについては、 v1.16 リリースノートの「アップグレードの依存関係」セクションを参照してください。
これらの変更の詳細については、 v1.16 リリースノート を参照してください Github で。
1.15.1の新機能
1.15.1 Go ドライバーのパッチ リリースには、次の改善と修正が含まれています。
レプリカセット クラスターから切断すると
rttMonitor
接続が残る可能性のある接続リークを修正します。クライアント全体のタイムアウトと操作タイムアウトが設定されている場合に、読み取りおよび集計操作に
maxTimeMS
値を手動で指定するためのサポートを追加します。変更ストリームで呼び出しできる
RemainingBatchLength()
メソッドを追加します。
これらの変更の詳細については、 v1.15.1 リリースノート を参照してください Github で。
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)プラットフォームではデフォルトで無効になっています。
serverMonitoringMode
URI オプションを使用してモニタリングを有効にできます。
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 機能の使用方法については、サーバー マニュアルの「クイック スタート」を参照してください。
ログ記録インターフェース
LogSink
ロギング インターフェースを使用して、接続マネジメントとコマンド実行イベントを記録できるようになりました。
詳しくは、「ログの基礎 」ガイドを参照してください。
追加の BSON マーシャリング オプション
このドライバー バージョンは、ドライバーが 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 ドキュメントを参照してください。
簡略化された書込み保証 (write concern) の仕様
このドライバー バージョンにより、 WriteConcern
API が簡素化されます。 変更の詳細については、「 書込み保証 ( write concern) 」を参照してください。
追加の変更
EKS のAmazon Web Services IAM ロールによる認証をサポートします。
カーソルの反復処理時に取得されるバッチのサイズを指定できるようにするための
Cursor.SetBatchSize()
メソッドの追加。MarshalValue()
メソッドでマーシャリングされた BSON 値のマーシャリングを可能にするためのUnmarshalValue()
メソッドの追加。