Stable API
API バージョンの宣言
API バージョンを宣言するには、クライアントの作成時に serverApi
ドライバー オプションを渡します。 値は MongoDB\Driver\ServerApi です API バージョン情報を含むインスタンス。この機能は MongoDB 5で導入されています。 0は、最初は API バージョン " 1のみをサポートします。 サーバーの将来のバージョンで、追加のバージョンが導入される可能性があります。
use MongoDB\Client; use MongoDB\Driver\ServerApi; $serverApi = new ServerApi(ServerApi::V1); $client = new Client('mongodb://127.0.0.1', [], ['serverApi' => $serverApi]); // Command includes the declared API version $client->database->collection->find([]);
注意
5.0 より前の配置に接続する場合にのみ API バージョンを宣言します。 メンバー。 古いサーバーでは、宣言された API バージョンを持つコマンドに遭遇すると、 エラーが発生します。
Strict API
デフォルトでは、API バージョンを宣言すると、stable API の構成コマンドの動作が保証されますが、API バージョンに含まれないコマンドの使用は禁止されません。 Stable API の一部のコマンドとオプションのみを許可するには、strict
MongoDB\Driver\ServerApi を作成するときに オプションを指定します インスタンス:
use MongoDB\Client; use MongoDB\Driver\ServerApi; $serverApi = new ServerApi(ServerApi::V1, true); $client = new Client('mongodb://127.0.0.1', [], ['serverApi' => $serverApi]); // Will fail as the tailable option is not supported in versioned API $client->database->collection->find([], ['tailable' => true]);
非推奨コマンドで失敗
任意のdeprecationErrors
オプションを使用すると、MongoDB は API バージョンで非推奨になっているすべてのコマンドや動作を失敗させます。 これはテストに使用して、将来の API バージョンへのスムーズな移行を確保します。
use MongoDB\Client; use MongoDB\Driver\ServerApi; $serverApi = new ServerApi(ServerApi::V1, null, true); $client = new Client('mongodb://127.0.0.1', [], ['serverApi' => $serverApi]);
注意
この書き込みの時点で、API バージョン "1" のどの部分も非推奨になっていません。
コマンド ヘルパーで使用する
MongoDB\Database::command()
メソッドを使用して任意のコマンドを実行すると、クライアントに宣言された API バージョンが自動的にコマンド ドキュメントに追加されます。 コマンド ドキュメントでapiVersion
、 apiStrict
、またはapiDeprecationErrors
コマンド オプションのいずれかを設定し、宣言された API バージョンを持つクライアントからMongoDB\Database::command()
を呼び出す場合はサポートされておらず、未定義の動作が発生します。