Php/docs/changelog.mongo

提供:Dev Guides
< Php
移動先:案内検索

変更履歴

この拡張モジュールのクラス/関数/メソッドには次のような変更がありました。

MongoDB PHP Driver 1.5.0

MongoDB 2.6 の新機能に対応しました。たとえば以下のようなものです。

  • 集約が、カーソルを返せるようになりました。
  • 集約パイプラインの explain が可能になりました。
  • コマンドやクエリに、maxTimeMS を設定できるようになりました。
  • コマンドベースの新しい MongoDB 書き込み API を、透過的にサポートしました。
  • MongoWriteBatch クラスが追加されました (新しい MongoDB 書き込み API を利用します)。
  • MongoDB Enterprise の機能 (Kerberos, LDAP, X509 など) に対応しました。
  • セカンダリからの読み込みで、受け入れ可能なレイテンシーを調整できるようになりました (secondaryAcceptableLatencyMS)。

このリリースでは、ドキュメントで非推奨とされていた機能のいくつかについて、 実際に非推奨のメッセージを出すようになりました。たとえば、以下のような機能がその対象です。

  • Mongo クラスのインスタンス作成
  • MongoCursor::slaveOkay() の呼び出し
  • MongoCollection の書き込み操作における "wtimeout" オプションおよび "safe" オプション
  • コアクラスの public プロパティの操作 ($collection->w など)

注意:

非推奨とされていた機能の中で、実際に削除されたものは、まだありません。

以下の挙動が、変わりました。

  • INI 項目 mongo.native_long を設定すると、32 ビットプラットフォームではエラーとなります。また、64 ビットプラットフォームでのデフォルトが true になりました。


MongoDB PHP Driver 1.4.0

1.4 系では、MongoDB サーバーへの接続を確立する方法が根本的に変わりました。 PHP ネイティブストリームを使うようになったので、PHP のストリームのオプションがすべて使えます。 さらに、実験的に、ストリームコンテキストのサポートも追加されました。

1.4.x 系ではまた、MongoDB 2.4.x のサポートも追加されています。

特筆すべき改良点はレプリカセットの処理で、中でも、 タイムアウトしたノードやさまざまな要員で到達できないノードの扱いが改善されました。 それ以外にも、ノード間での書き込み確認の問題にも対応しています。 また、SSL を使った接続にも対応し、接続文字列のオプションとして journal や fsync にも対応しました。


MongoDB PHP Driver 1.3.0

1.3 系では大きな変更が加わりました。 接続処理 が新しく書き直され (同時にプーリングが削除され) たり、 優先読み込み に対応したり、デフォルトの WriteConcerns確認付きになったりしました。新しく導入されたクラス MongoClient がこれらを扱います。 これは、非推奨になった Mongo クラスのかわりに使うものです。

また、複数の mongos インスタンス (Mongo Shard ルーター) に接続してロードバランシングができるようになりました。

その他の追加機能には、MongoLog のログ機能の改良 (接続処理のデバッグがしやすくなりました) や MongoCollection::aggregate() メソッドによる » Aggregation Framework のサポートなどがあります。


既存のメソッドへの変更

既存のメソッドの中で、初期のバージョンから改良が加えられたものをまとめます。

Version Function Description
PECL mongo 1.7.0 MongoDB::execute このメソッドは非推奨になりました。内部で使っている

eval コマンドが、MongoDB 3.0 以降で非推奨になったためです。

PECL mongo 1.6.0 MongoClient::__construct Added support for "SCRAM-SHA-1" in

"authMechanism" option.

  MongoCollection::count 二番目のパラメータが配列 options に変わりました。

limit や skip を二番目、三番目のパラメータとして渡す方法は、非推奨になりました。

  MongoDB::getCollectionNames 最初のパラメータがオプションの配列に変わりました。以前のバージョンでは最初のパラメータは boolean で、

"includeSystemCollections" オプションの値を指定するものでした。

  MongoDB::listCollections 最初のパラメータがオプションの配列に変わりました。以前のバージョンでは最初のパラメータは boolean で、

"includeSystemCollections" オプションの値を指定するものでした。

PECL mongo 1.5.0 log_cmd_delete Only available when connected to MongoDB 2.6.0+
  log_cmd_insert Only available when connected to MongoDB 2.6.0+
  log_cmd_update Only available when connected to MongoDB 2.6.0+
  log_write_batch Only available when connected to MongoDB 2.6.0+
  MongoBinData::__construct The default changed from 2

(MongoBinData::BYTE_ARRAY) to 0 (MongoBinData::GENERIC).

  MongoClient::__construct Added "authMechanism", "gssapiServiceName", and "secondaryAcceptableLatencyMS".
  MongoClient::__construct Added "authSource".
  MongoCollection::aggregate オプションの引数 options が追加されました。
  MongoCollection::batchInsert "wTimeoutMS" オプションが追加されました。これは

"wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。

  MongoCollection::ensureIndex Renamed the "wtimeout" option to

"wTimeoutMS". Emits E_DEPRECATED when "wtimeout" is used. Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.

  MongoCollection::findOne オプションの引数 options が追加されました。
  MongoCollection::group "maxTimeMS" オプションが追加されました。
  MongoCollection::insert "wTimeoutMS" オプションが追加されました。これは

"wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。

  MongoCollection::remove "wTimeoutMS" オプションが追加されました。これは

"wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。

  MongoCollection::save オプション "wTimeoutMS" が追加されました。

これは "wtimeout" を置き換えるものです。 "wtimeout" を使うと、E_DEPRECATED が発生します。 オプション "socketTimeoutMS" が追加されました。 これは "timeout" を置き換えるものです。 "timeout" を使うと、E_DEPRECATED が発生します。 "safe" を使うと、E_DEPRECATED が発生します。

  MongoCollection::toIndexString このメソッドは非推奨になりました。
  MongoCollection::update "wTimeoutMS" オプションが追加されました。これは

"wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。

  MongoCursor::slaveOkay This method has been deprecated in favour of

MongoCursor::setReadPreference and .

  MongoDB::command オプション "timeout" の名前が

"socketTimeoutMS" に変わりました。 "wtimeout" を使うと、E_DEPRECATED が発生します。 参照渡しの hash パラメータが追加されました。

PECL mongo 1.4.5 MongoCursor::batchSize Before 1.4.5, this method would throw an

MongoCursorException if the cursor had already started iterating.

PECL mongo 1.4.0 MongoClient::__construct Added "ssl" option and support for

connecting over SSL. Added "wTimeoutMS" option, which replaces "wTimeout". Emits E_DEPRECATED when "slaveOkay" or "timeout" is used.

  MongoCursor::hint index 引数に、文字列でインデックス名を指定できるよういなりました。

これより前のバージョンでは、配列またはオブジェクトしか渡せませんでした。

  MongoCursor::setFlag Support for flag 3 (OPLOG_REPLAY) is added. Versions before 1.4.0

would throw a warning saying that the flag is unsupported.

  MongoDB::createCollection 1.4.0 より前のバージョンでは、個々のオプションがすべてメソッドの引数になっていました。

旧バージョンのシグネチャは、次のとおりです。 public MongoCollectionMongoDB::createCollection stringname boolcappedfalse intsize0 intmax0 各オプションの意味は、先ほど options 引数のところで説明したとおりです。

  MongoId::__construct An exception is thrown when passed invalid string
PECL mongo 1.3.4 MongoClient::__construct Added "connectTimeoutMS" and

"socketTimeoutMS" options.

  MongoCollection::batchInsert "wtimeout" オプションが追加されました。
  MongoCollection::ensureIndex Added "wtimeout" option.
  MongoCollection::insert "wtimeout" オプションが追加されました。
  MongoCollection::remove "wtimeout" オプションが追加されました。
  MongoCollection::update "wtimeout" オプションが追加されました。
PECL mongo 1.3.3 MongoClient::getReadPreference 返り値が変わり、

MongoClient::setReadPreference との整合性があるものになりました。 type の値は数字から文字列に変わり、 type_string は削除され、そして tagsets はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。

  MongoCollection::getReadPreference 返り値が変わり、

MongoCollection::setReadPreference との整合性があるものになりました。 type の値は数字から文字列に変わり、 type_string は削除され、そして tagsets はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。

  MongoDB::getReadPreference 返り値が変わり、

MongoDB::setReadPreference との整合性があるものになりました。 type の値は数字から文字列に変わり、 type_string は削除され、そして tagsets はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。

PECL mongo 1.3.0 Mongo::close connection パラメータが追加されました。

それより前のバージョンでは、このメソッドで閉じられるのは書き込み接続だけでした。

  MongoClient::__construct Added "readPreference",

"readPreferenceTags", "w", and "wTimeout" options.

  MongoCollection::batchInsert "w" オプションが追加されました。
  MongoCollection::ensureIndex Added "w" option.

The options parameter no longer accepts a boolean to signify a unique index. Instead, this now has to be done with array('unique' => true).

  MongoCollection::insert "w" オプションが追加されました。

options パラメータで、boolean だけを渡して確認付きの書き込みを指定することができなくなりました。 同じことをするには array('w' => 1) (MongoClient のデフォルト) としなければなりません。

  MongoCollection::remove "w" オプションが追加されました。

options パラメータで、boolean だけを渡して "justOne" を指定することができなくなりました。 同じことをするには array('justOne' => true) としなければなりません。

  MongoCollection::update "w" オプションが追加されました。

options パラメータで、boolean だけを渡して upsert を指定することができなくなりました。 同じことをするには array('upsert => true) としなければなりません。

  MongoDB::listCollections includeSystemCollections が追加されました。
  MongoGridFSCursor::key ドキュメントの _id を文字列で返すようになりました。

キーは一意であるはずだからです。 これより前のバージョンでは filename を返していました。

PECL mongo 1.2.11 Mongo::getPoolSize E_DEPRECATED を発行するようになりました。
  Mongo::getSlave E_DEPRECATED を発行するようになりました。
  Mongo::getSlaveOkay E_DEPRECATED を発行するようになりました。
  Mongo::poolDebug Emits E_DEPRECATED when used.
  Mongo::setSlaveOkay Emits E_DEPRECATED when used.
  Mongo::switchSlave E_DEPRECATED を発行するようになりました。
  MongoBinData::__construct Emits E_DEPRECATED when the second argument is not

used. The default value for type may change in the near future.

  MongoCollection::ensureIndex Emits E_DEPRECATED when

options is scalar.

  MongoCollection::getSlaveOkay E_DEPRECATED を発行するようになりました。
  MongoCollection::group options が scalar のときに E_DEPRECATED を発行するようになりました。
  MongoCollection::remove options が scalar のときに E_DEPRECATED を発行するようになりました。
  MongoCollection::setSlaveOkay Emits E_DEPRECATED when used.
  MongoCollection::update options が scalar のときに E_DEPRECATED を発行するようになりました。
  MongoCursor::doQuery Emits E_DEPRECATED when used.
  MongoDB::authenticate E_DEPRECATED を発行するようになりました。

認証情報の詳細をコンストラクタに渡しましょう。

  MongoDB::forceError E_DEPRECATED を発行するようになりました。
  MongoDB::getSlaveOkay E_DEPRECATED を発行するようになりました。
  MongoDB::prevError E_DEPRECATED を発行するようになりました。
  MongoDB::resetError E_DEPRECATED を発行するようになりました。
  MongoDB::setSlaveOkay Emits E_DEPRECATED when used.
  MongoPool::getSize Emits E_DEPRECATED when used.
  MongoPool::info Emits E_DEPRECATED when used.
  MongoPool::setSize Emits E_DEPRECATED when used.
PECL mongo 1.2.10 Mongo::getHosts レプリカセットでない場合もサポートするようになりました。

返される配列の要素に、新たに hostname と port を含むようになりました。

PECL mongo 1.2.7 MongoCollection::batchInsert "continueOnError" オプションが追加されました。
PECL mongo 1.2.5 MongoGridFS::storeUpload 二番目のパラメータがメタデータの配列に変わりました。これより前のバージョンでは、

二番目のパラメータはオプションの文字列で、ファイル名を上書きするものでした。

PECL mongo 1.2.0 Mongo::close 1.2.0 より前のバージョンでは、デフォルトでは持続的接続を使いませんでした。

そして、MongoDB の接続がスコープから抜ければすぐに閉じられていました。 バージョン 1.2.0 からはそうではなくなりました。 close を呼ばないと、高負荷な接続がサーバーを使い切ってしまう可能性があります。

  MongoClient::__construct Added "username" and "password"

options. Removed "persist" option, as all connections are now persistent. It can still be used, but it doesn't affect anything. "persist" If the connection should be persistent. If set, the connection will be persistent. The string representation of the value is used as an ID for the connection, so two instances of MongoClient that are initialized with array("persist" => "foobar") will share the same database connection, whereas an instance initialized with array("persist" => "barbaz") will use a different database connection. The "replicaSet" option now takes a string, not a boolean.

  MongoCollection::ensureIndex Added "timeout" option.
  MongoCollection::insert "timeout" オプションが追加されました。
  MongoCollection::remove "timeout" オプションが追加されました。
  MongoCollection::save "timeout" オプションが追加されました。
  MongoCollection::update "timeout" オプションが追加されました。
  MongoDB::command options パラメータと、そのオプション

"timeout" が追加されました。

PECL mongo 1.1.0 MongoCursor::info 多くのフィールドが追加されました。id (カーソル ID)、

at (現在のドキュメントを表すドライバのカウンタ)、 numReturned (サーバーが現在のバッチで返した件数)、そして server (クエリの送信先のサーバー。 と組み合わせると便利) などです。

PECL mongo 1.0.11 MongoCollection::ensureIndex The "safe" option will trigger a primary failover,

if necessary. MongoException will be thrown if the index name (either generated or set) is longer than 128 bytes.

  MongoCollection::insert "safe" が設定されている場合は、"not master" エラーで接続を切断するようになりました。
  MongoCollection::remove "safe" が設定されている場合は、"not master" エラーで接続を切断するようになりました。
  MongoCollection::save "safe" が設定されている場合は、"not master" エラーで接続を切断するようになりました。
  MongoCollection::update "safe" が設定されている場合は、"not master" エラーで接続を切断するようになりました。
PECL mongo 1.0.10 MongoCursor::info started_iterating フィールドが追加されました。boolean で、

このカーソルがクエリ実行前か実行後かを返します。

PECL mongo 1.0.9 MongoClient::__construct Added "replicaSet" option.
  MongoCollection::batchInsert "safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。

"fsync" オプションが追加されました。

  MongoCollection::insert "safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。

"fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。

  MongoCollection::remove "safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。

"fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。

  MongoCollection::save "fsync" オプションが追加されました。
  MongoCollection::update "safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。

"fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。

PECL mongo 1.0.7 MongoCollection::count limit および skip が

それぞれ二番目、三番目のパラメータとして追加されました。

PECL mongo 1.0.5 MongoCollection::batchInsert options パラメータが追加されました。
  MongoCollection::ensureIndex Added the "name" option to override index name

creation.

  MongoCollection::remove 二番目のパラメータがオプションの配列に変わりました。1.0.5

より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。

  MongoCollection::save options パラメータが追加されました。
  MongoCollection::update "safe" オプションが追加されました。
PECL mongo 1.0.2 MongoClient::__construct Changed constructor to take an array of options. Pre-1.0.2, the

constructor took the following parameters: server The server name. connect Optional boolean parameter specifying if the constructor should connect to the database before returning. Defaults to true. persistent If the connection should be persistent. paired If the connection should be paired.

  MongoCollection::ensureIndex Changed options parameter from boolean to array.

Pre-1.0.2, the second parameter was an optional boolean value specifying a unique index.

  MongoCollection::insert 二番目のパラメータがオプションの配列に変わりました。1.0.2

より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。

PECL mongo 1.0.1 MongoCollection::insert "safe" オプションが設定されていて追加に失敗した場合に

MongoCursorException をスローするようになりました。

  MongoCollection::update options パラメータが boolean から配列に変わりました。

1.0.1 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、upsert を指定するものでした。