注意
Stable API 機能には MongoDB Server 5.0 以降が必要です。
Overview
このガイドでは、MongoDB 配置に接続するときにStable API互換性を指定する方法を学習できます。
Stable API機能を使用すると、指定されたAPIバージョンと互換性のある動作でサーバーに操作が強制的に実行されます。 ライブラリまたはサーバーのいずれかのバージョンを更新すると、 APIバージョンが変更され、これらの操作の動作が変わる可能性があります。 Stable APIを使用すると、サーバーからの一貫した応答が確保され、アプリケーションのAPIの長期的な安定性が確保されます。
次のセクションでは、MongoDB クライアントの Stable API を有効にしてカスタマイズする方法について説明します。 サポートするコマンドのリストを含む、Stable API Stable APIの詳細については、MongoDB Server マニュアルの を参照してください。
Stable API を有効にする
Stable API を有効にするには、次の手順を実行します。
MongoDB\Driver\ServerApiオブジェクトを作成し、使用する Stable APIバージョンを渡します。 現在、ライブラリはバージョン1のみをサポートしています。MongoDB\Clientオブジェクトを構築します。driverOptionsパラメーターには、serverApiオプションを含む配列を渡します。 このオプションは、前のステップで作成したMongoDB\Driver\ServerApiオブジェクトに設定します。
次のコード例は、Stable API バージョン1を指定する方法を示しています。
$uri = 'mongodb://<hostname>:<port>'; $driverOptions = ['serverApi' => new MongoDB\Driver\ServerApi('1')]; $client = new MongoDB\Client($uri, [], $driverOptions);
注意
指定されたAPIバージョンでMongoDB\Clientインスタンスを作成すると、クライアントで実行されるすべてのコマンドで指定されたバージョンが使用されます。 Stable APIの複数のバージョンを使用してコマンドを実行する必要がある場合は、新しいMongoDB\Clientインスタンスを作成します。
Stable API の構成
MongoDB\Driver\ServerApiコンストラクターは、次の任意パラメーターも受け入れます。 これらのパラメーターを使用して、 Stable APIの動作をカスタマイズできます。
Parameter | 説明 |
|---|---|
厳密 | Optional. When true, if you call a command that isn't part of
the declared API version, the server raises an exception.Default: null. If this parameter is null, the server applies its default
value of false. |
deleteErrors | Optional. When true, if you call a command that is deprecated in the
declared API version, the server raises an exception.Default: null. If this parameter is null, the server applies its default
value of false. |
次のコード例は、 MongoDB\Driver\ServerApiオブジェクトを構築するときにこれらのパラメータを使用する方法を示しています。
$uri = 'mongodb://<hostname>:<port>'; $serverApi = new MongoDB\Driver\ServerApi('1', strict: true, deprecationErrors: true); $driverOptions = ['serverApi' => $serverApi]; $client = new MongoDB\Client($uri, [], $driverOptions);
API ドキュメント
MongoDB\Clientクラスの詳細については、次のPHPライブラリAPIドキュメントを参照してください。
MongoDB\Driver\ServerApiクラスの詳細については、次のPHP拡張APIドキュメントを参照してください。