新機能
MongoDB PHPライブラリの次のバージョンで導入されている新機能、改善点、修正について説明します。
2.1の新機能
重要
重大な変更
PHPライブラリ v2.1 のリリースでは、次の重大な変更が導入されています。
MongoDB Server 4.0 のサポートを廃止します。サポートされるMongoDB Server の最小バージョンは 4.2 です。
PHPライブラリ v2.1 リリースには、次の機能、改善点、修正が含まれています。
複数のデータベースとコレクションに対する書き込み操作を同じ呼び出しで実行するためのクライアント一括書き込み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
はfiles
GridFSコレクションに保存されなくなりました。アプリケーションでこの情報が必要な場合は、メタデータに保存する必要があります。GridFSの詳細については、ラージ ファイルの保存ガイドを参照してください。
検索操作の次の非推奨オプションを削除します。
maxScan
modifiers
oplogReplay
snapshot
検査操作でサポートされているオプションについては、
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\CollectionInfoIterator
MongoDB\Model\DatabaseInfoIterator
MongoDB\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()
メソッドは非推奨となり、今後のドライバー リリースでこれらの新しいメソッドに置き換えられる予定です。そのため、アプリケーションで 使用方法を変更する ことを検討してください。SearchStage
、VectorSearchStage
、SearchMetaStage
ビルダ クラスの名前付き引数を追加します。この変更により、Atlas Search および Atlas ベクトル検索クエリをより型安全性と整理された方法で記述できます。 詳細については、Atlas Search および Atlas ベクトル検索 のガイドを参照してください。非推奨の MMAPv1 ストレージエンジンで使用される
flags
オプションを廃止します。このオプションは、 PHPライブラリ v2.0 で削除されます。MongoDB\Collection::updateOne()
メソッドとMongoDB\Collection::replaceOne()
メソッドにソート オプションを追加します。この変更により、 一括操作でアップデート操作と置換操作を実行するときに、オプションとしてソート順序を設定できるようになります。次のメソッドに
builderEncoder
オプションを追加します。
このバージョンの変更の詳細については、 v1.21 リリースノート を参照してくださいGithub .
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()
メソッドの検索インデックス仕様に オプションを追加します。この変更により、Atlas ベクトル検索インデックスをプログラムで作成できるようになります。 詳細と例については、「 Atlas Search インデックスガイド 」を参照してください。
このバージョンの変更の詳細については、 v1.20 リリースノート を参照してくださいGithub .
1.19の新機能
PHPライブラリのこのリリースでは大きな変更は含まれておらず、 PHP拡張機能とバージョンの同等性を保つために追加されています。
1.18の新機能
PHP の既存のファイルシステム関数を使用してファイルを操作しやすくするために、新しいGridFS APIを追加します。
MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()
メソッドを使用して、 GridFSバケットのグローバル エイリアスを登録できます。 そうすると、そのバケット内のファイルにはファイルURI のみを使用してアクセスできるようになります(例: " Gridds://mybucket/hello.txt ")。 このAPIのデモは、 Gridfs_stream_ wrapper .出力 を参照してください。 例スクリプト。基礎の
MongoDB\Driver\Manager
オブジェクトにスコープが設定されたモニタリング クラスの登録を容易にするために、MongoDB\Client
クラスにMongoDB\Client::addSubscriber()
} メソッドとMongoDB\Client::removeSubscriber()
メソッドを追加します。
このリリースの詳細については、 v1.18 リリースノート を参照してくださいGithub .
1.17の新機能
BSONとPHPオブジェクトを変換するための新しい「コーデック」 APIを導入します。 この機能の詳細については、「コーデック チュートリアル」を参照してください。
ライブラリに
MongoDB\add_logger()
とMongoDB\remove_logger()
関数を追加します。 これらの関数により、アプリケーションは PSR-3 Logger を登録できます ドライバーが発行したログメッセージを受信します。以前は、ログは拡張機能の mongodb.debug からのみ利用可能でしたINI
設定。Atlas Search インデックスを作成および管理するための新しい
MongoDB\Collection
メソッドを導入します。 Atlas Search インデックスは、ライブラリのすべてのバージョンでサポートされている$search
集計パイプラインステージを使用してクエリできます。 Atlas Search インデックスと$search
集計ステージの詳細については、 Atlas Search インデックスに関するドキュメントと$search を参照してください。mongodb
の拡張要件を1.17.0にアップグレードします。 PHP 7.2および7.3のサポートは削除され、ライブラリにはPHP 7.4以上が必要になりました。
このリリースの詳細については、 v1.17 リリースノート を参照してくださいGithub .