MongoDB PHPライブラリの次のバージョンで導入されている新機能、改善点、修正について説明します。
2.1の新機能
重要
重大な変更
PHPライブラリ v2.1 のリリースでは、次の重大な変更が導入されています。
MongoDB Server 4.0 のサポートを廃止します。サポートされるMongoDB Server の最小バージョンは 4.2 です。
PHPライブラリ v2.1 リリースには、次の機能、改善点、修正が含まれています。
PHP 8.5 との互換性を追加します。
複数のデータベースとコレクションに対する書き込み操作を同じ呼び出しで実行するためのクライアント一括書き込みAPIを追加します。この機能の詳細については、 一括書込み操作ガイドの「クライアントの一括書込み」セクションを参照してください。
2.0の新機能
重要
重大な変更
PHPライブラリ v2.0 のリリースでは、次の重大な変更が導入されています。
次のメソッドでは、未加工のコマンド応答ではなく
voidが返されます。MongoDB\Client:dropDatabase()MongoDB\Collection:drop(),dropIndex(),dropIndexes(),dropSearchIndex(),rename()MongoDB\Database:createCollection(),drop(),dropCollection(),renameCollection()
このリリースの重大な変更の詳細については、 ライブラリ バージョンのアップグレードガイドの 「バージョン 2.0 重大な変更」 セクションを参照してください。
PHPライブラリ v2.0 リリースには、次のAPI の変更と削除が含まれています。
次のメソッドを追加します。
MongoDB\Client::getDatabase(): のエイリアスMongoDB\Client::selectDatabase()MongoDB\Client::getCollection(): のエイリアスMongoDB\Client::selectCollection()MongoDB\Database::getCollection(): のエイリアスMongoDB\Database::selectCollection()
Client::selectCollection()、Client::selectDatabase()、Database::selectCollection()メソッドは非推奨となり、今後のドライバー リリースでこれらの新しいメソッドに置き換えられる予定です。そのため、アプリケーションで 使用方法を変更する ことを検討してください。MongoDB\Database::aggregate()メソッドとMongoDB\Collection::aggregate()メソッドを変更して、Pipelineインスタンスを$pipelineパラメータとして受け入れることができるようにします。この構造を使用する例については、 集計ガイドの「集計ビルダ」セクションを参照してください。拡張性と互換性を向上させるために、
Cursor型のヒントをCursorInterfaceに置き換えます。GridFSタイプの非推奨フィールドを排除します。
ライブラリは、ファイルがGridFSにアップロードされるときに、
md5フィールドを計算しません。アプリケーションでファイルダイジェストが必要な場合は、このプロセスをGridFS の外部で実装し、値をメタデータに保存する必要があります。フィールド
contentTypeとaliasesはfilesGridFSコレクションに保存されなくなりました。アプリケーションでこの情報が必要な場合は、メタデータに保存する必要があります。GridFSの詳細については、ラージ ファイルの保存ガイドを参照してください。
検索操作の次の非推奨オプションを削除します。
maxScanmodifiersoplogReplaysnapshot
検査操作でサポートされているオプションについては、
MongoDB\Collection::find()またはMongoDB\Collection::findOne()APIドキュメントを参照してください。非推奨の
IndexInfo::isGeoHaystack()メソッドを削除します。MongoDB\Database::createCollection()メソッドの非推奨のautoIndexIdオプションとflagsオプションを削除します。次の非推奨のメソッドとタイプを削除することで、 map-reduce機能のサポートを廃止します。
MongoDB\Collection::mapReduce()MongoDB\MapReduceResult
map-reduce操作は、
$groupや$mergeなどの集計パイプラインステージ を使用して書き換えることができます。詳細については、 MongoDB Serverマニュアルのmap-reduce から集計パイプラインへの移行を参照してください。次の
Iterator実装を削除します。MongoDB\Model\CollectionInfoIteratorMongoDB\Model\DatabaseInfoIteratorMongoDB\Model\IndexInfoIterator
MongoDB\Client::listDatabases()、MongoDB\Database::listCollections()、およびMongoDB\Collection::listIndexes()メソッドは、対応する結果を提供する一般的なトラバース可能なIteratorインスタンスを返します。
1.21の新機能
PHPライブラリ v1.21 リリースには、次の機能、改善点、修正が含まれています。
集計パイプラインをよりタイプセーフな方法で構築するためのAPIである Aggregation Builder を導入します。詳細と例については、集計ガイドの「集計ビルダ」セクションを参照してください。
次のメソッドを追加します。
MongoDB\Client::getDatabase(): のエイリアスMongoDB\Client::selectDatabase()MongoDB\Database::getCollection(): のエイリアスMongoDB\Database::selectCollection()MongoDB\Database::getCollection(): のエイリアスMongoDB\Database::selectCollection()
Client::selectCollection()、Client::selectDatabase()、Database::selectCollection()メソッドは非推奨となり、今後のドライバー リリースでこれらの新しいメソッドに置き換えられる予定です。そのため、アプリケーションで 使用方法を変更する ことを検討してください。SearchStageVectorSearchStageSearchMetaStage、 、 ビルダ クラスの名前付き引数を追加します。この変更により、 MongoDB Search およびMongoDB ベクトル検索クエリをより型安全性と整理された方法で記述できます。詳細については、「 MongoDB Search クエリの実行 」および「 MongoDB ベクトル検索クエリの実行 」ガイドを参照してください。非推奨の MMAPv1 ストレージエンジンで使用される
flagsオプションを廃止します。このオプションは、 PHPライブラリ v2.0 で削除されます。MongoDB\Collection::updateOne()メソッドとMongoDB\Collection::replaceOne()メソッドにソート オプションを追加します。この変更により、 一括操作でアップデート操作と置換操作を実行するときに、オプションとしてソート順序を設定できるようになります。次のメソッドに
builderEncoderオプションを追加します。
このバージョンの変更の詳細については、Github で v1.21 リリースノート を参照してください。
1.20の新機能
重要
MongoDB Server v 3.6 サポート終了
このライブラリのリリースでは、 MongoDB Server v 3.6のサポートが削除されています。
MongoDB Server v 8.0のサポートを追加します。
Queryable Encryption(QE)範囲クエリのサポートを追加します。 この機能を使用するには、アプリを MongoDB Server 8.0以降に接続する必要があります。 QEQueryable Encryption 範囲クエリの詳細については、MongoDB Server マニュアルの「 」を参照してください。
シャーディングされたシャーディングされたクラスター操作が成功しない場合、ライブラリは他の
mongosサーバーが使用可能な場合、操作の再試行に同じmongosサーバーを選択することを回避します。KMIP データキーを作成する際に、
delegatedオプションを指定できるようになりました。 このオプションをtrueに設定すると、KMIP プロバイダーはデータキーの暗号化と復号化をローカルで実行し、暗号化のキーが KMIPサーバーから離れることはありません。typeメソッドとMongoDB\Collection::createIndex()MongoDB\Collection::createSearchIndexes()メソッドの検索インデックス仕様に オプションを追加します。この変更により、 MongoDB ベクトル検索インデックスをプログラムで作成できるようになります。詳細と例については、「 MongoDB Search インデックスガイド 」を参照してください。
このバージョンの変更の詳細については、 Githubの v1.20 リリースノート を参照してください。
1.19の新機能
PHPライブラリのこのリリースでは大きな変更は含まれておらず、 PHP拡張機能とバージョンの同等性を保つために追加されています。
1.18の新機能
PHP の既存のファイルシステム関数を使用してファイルを操作しやすくするために、新しいGridFS APIを追加します。
MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()メソッドを使用して、 GridFSバケットのグローバル エイリアスを登録できます。そうすると、そのバケット内のファイルにはファイルURI のみを使用してアクセスできるようになります(例:" Gridds://mybucket/hello.txt ")。このAPIのデモは、 gridfs_stream_wrapper.php 例スクリプトにあります。基礎の
MongoDB\Driver\Managerオブジェクトにスコープが設定されたモニタリング クラスの登録を容易にするために、MongoDB\ClientクラスにMongoDB\Client::addSubscriber()} メソッドとMongoDB\Client::removeSubscriber()メソッドを追加します。
このリリースの詳細については、 Githubの v1.18 リリースノート を参照してください。
1.17の新機能
BSONとPHPオブジェクトを変換するための新しい「コーデック」 APIを導入します。 この機能の詳細については、「コーデック チュートリアル」を参照してください。
ライブラリに
MongoDB\add_logger()とMongoDB\remove_logger()関数を追加します。これらの関数を使用すると、アプリケーションは PSR-3 Logger を登録し、ドライバーが出力するログメッセージを受信できるようにします。以前は、ログは拡張機能の mongodb.debugINI設定でのみ利用可能でした。MongoDB\CollectionMongoDB Search インデックスを作成および管理するための新しい メソッドを導入します。 MongoDB Search$searchインデックスは、ライブラリのすべてのバージョンでサポートされている 集計パイプラインステージを使用してクエリできます。 MongoDB Search インデックスと$search集計ステージの詳細については、 MongoDB Search インデックスに関するドキュメント と $search を参照してください。mongodbの拡張要件を1.17.0にアップグレードします。 PHP 7.2および7.3のサポートは削除され、ライブラリにはPHP 7.4以上が必要になりました。
このリリースの詳細については、 Githubの v1.17 リリースノート を参照してください。