Mongo
PHP Manual

変更履歴

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

MongoDB PHP Driver 1.5.0

It supports all new features for MongoDB 2.6, including:

With this release, some driver functionality which was previously documented as deprecated will now formally raise deprecation notices. This includes:

注意:

No previously deprecated features have been removed.

Changes in behaviour:

MongoDB PHP Driver 1.4.0

The 1.4 series introduced fundemental changes in how connections are created to the MongoDB servers. The driver now utilizes PHP native streams, so all normal PHP stream options apply. Furthermore, an experimental Stream Context Support was added.

The 1.4.x series also added support for MongoDB 2.4.x.

The most important improvements however deal with the handling of replica sets, especially nodes that timeout and nodes that are unreachable for various reasons. Besides the improvements to replica set handling, this release addresses issues with read preferences through mongos nodes. It also adds support for SSL enabled connections as well as journal and fsync connection string options.

MongoDB PHP Driver 1.3.0

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

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

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

既存のメソッドへの変更

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

VersionFunctionDescription
1.5.0MongoBinData::__constructデフォルトが 2 (MongoBinData::BYTE_ARRAY) から 0 (MongoBinData::GENERIC) に変わりました。
 MongoCollection::aggregateオプションの引数 options が追加されました。
 MongoCollection::batchInsert"wTimeoutMS" オプションが追加されました。これは "wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。
 MongoCollection::ensureIndexRenamed 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オプション "timeout" の名前が "socketTimeoutMS" に変わりました。
 MongoCollection::saveオプション "wtimeout" の名前が "wTimeoutMS" に変わりました。
 MongoCollection::toIndexStringこのメソッドは非推奨になりました。
 MongoCollection::update"wTimeoutMS" オプションが追加されました。これは "wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。
 MongoCursor::slaveOkayこのメソッドは非推奨になりました。かわりに MongoCursor::setReadPreference と を使いましょう。
1.4.5MongoCursor::batchSize1.4.5 より前のバージョンでは、このメソッドは、 カーソルの反復処理が始まっている場合に MongoCursorException をスローしていました。
1.4.0Mongo::__construct"wTimeoutMS" オプションが追加されました。これは "wTimeout" の代替です。
 MongoCursor::hintindex 引数に、文字列でインデックス名を指定できるよういなりました。 これより前のバージョンでは、配列またはオブジェクトしか渡せませんでした。
 MongoCursor::setFlagフラグ 3 (OPLOG_REPLAY) をサポートするようになりました。 以前のバージョンでは、このフラグには対応していないという警告が出ていました。
 MongoDB::createCollection1.4.0 より前のバージョンでは、個々のオプションがすべてメソッドの引数になっていました。 旧バージョンのシグネチャは、次のとおりです。 public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 各オプションの意味は、先ほど options 引数のところで説明したとおりです。
 MongoId::__construct無効な文字列を渡したときに例外をスローするようになりました。
1.3.4Mongo::__construct"connectTimeoutMS" および "socketTimeoutMS" オプションが追加されました。
 MongoCollection::batchInsert"wtimeout" オプションが追加されました。
 MongoCollection::ensureIndexAdded "wtimeout" option.
 MongoCollection::insert"wtimeout" オプションが追加されました。
 MongoCollection::remove"wtimeout" オプションが追加されました。
 MongoCollection::update"wtimeout" オプションが追加されました。
1.3.3MongoClient::getReadPreference返り値が変わり、 MongoClient::setReadPreference との整合性があるものになりました。 type の値は数字から文字列に変わり、 type_string は削除され、そして tagsets はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。
 MongoCollection::getReadPreference返り値が変わり、 MongoCollection::setReadPreference との整合性があるものになりました。 type の値は数字から文字列に変わり、 type_string は削除され、そして tagsets はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。
 MongoDB::getReadPreference返り値が変わり、 MongoDB::setReadPreference との整合性があるものになりました。 type の値は数字から文字列に変わり、 type_string は削除され、そして tagsets はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。
1.3.0Mongo::closeconnection パラメータが追加されました。 それより前のバージョンでは、このメソッドで閉じられるのは書き込み接続だけでした。
 Mongo::__construct"readPreference"、 "readPreferenceTags"、"w" および "wTimeout" オプションが追加されました。
 MongoCollection::batchInsert"w" オプションが追加されました。
 MongoCollection::ensureIndexAdded "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::listCollectionsincludeSystemCollections が追加されました。
 MongoGridFSCursor::keyドキュメントの _id を文字列で返すようになりました。 キーは一意であるはずだからです。 これより前のバージョンでは filename を返していました。
1.2.11Mongo::getPoolSizeE_DEPRECATED を発行するようになりました。
 Mongo::getSlaveE_DEPRECATED を発行するようになりました。
 Mongo::getSlaveOkayE_DEPRECATED を発行するようになりました。
 Mongo::poolDebugE_DEPRECATED を発行するようになりました。
 Mongo::setSlaveOkayE_DEPRECATED を発行するようになりました。
 Mongo::switchSlaveE_DEPRECATED を発行するようになりました。
 MongoBinData::__construct二番目の引数を省略すると E_DEPRECATED を発行します。 type のデフォルト値は近い将来変わる見込みです。
 MongoCollection::ensureIndexEmits E_DEPRECATED when options is scalar.
 MongoCollection::getSlaveOkayE_DEPRECATED を発行するようになりました。
 MongoCollection::groupoptions が scalar のときに E_DEPRECATED を発行するようになりました。
 MongoCollection::removeoptions が scalar のときに E_DEPRECATED を発行するようになりました。
 MongoCollection::setSlaveOkayE_DEPRECATED を発行するようになりました。
 MongoCollection::updateoptions が scalar のときに E_DEPRECATED を発行するようになりました。
 MongoCursor::doQueryE_DEPRECATED を発行するようになりました。
 MongoDB::authenticateE_DEPRECATED を発行するようになりました。 認証情報の詳細をコンストラクタに渡しましょう。
 MongoDB::forceErrorE_DEPRECATED を発行するようになりました。
 MongoDB::getSlaveOkayE_DEPRECATED を発行するようになりました。
 MongoDB::prevErrorE_DEPRECATED を発行するようになりました。
 MongoDB::resetErrorE_DEPRECATED を発行するようになりました。
 MongoDB::setSlaveOkayE_DEPRECATED を発行するようになりました。
 MongoPool::getSizeE_DEPRECATED を発行するようになりました。
 MongoPool::infoE_DEPRECATED を発行するようになりました。
 MongoPool::setSizeE_DEPRECATED を発行するようになりました。
1.2.10Mongo::getHostsレプリカセットでない場合もサポートするようになりました。 返される配列の要素に、新たに hostname と port を含むようになりました。
1.2.7MongoCollection::batchInsert"continueOnError" オプションが追加されました。
1.2.5MongoGridFS::storeUpload二番目のパラメータがメタデータの配列に変わりました。これより前のバージョンでは、 二番目のパラメータはオプションの文字列で、ファイル名を上書きするものでした。
1.2.0Mongo::close1.2.0 より前のバージョンでは、デフォルトでは持続的接続を使いませんでした。 そして、MongoDB の接続がスコープから抜ければすぐに閉じられていました。 バージョン 1.2.0 からはそうではなくなりました。 close を呼ばないと、高負荷な接続がサーバーを使い切ってしまう可能性があります。
 Mongo::__construct"username" および "password" オプションが追加されました。 "persist" オプションが削除されました。すべての接続は持続的な接続となります。 今でも使うことはできますが、何の影響も及ぼしません。 "persist" 持続的な接続を行うかどうか。これを設定すると、接続が持続的なものとなります。 文字列の値を接続 ID として使うので、 array("persist" => "foobar") で初期化した Mongo のインスタンスがふたつあれば、 それは同じデータベース接続をあらわします。一方、 array("persist" => "barbaz") で初期化したインスタンスは別のデータベース接続を使います。 "replicaSet" オプションは、boolean ではなく文字列を受け取るようになりました。
 MongoCollection::ensureIndexAdded "timeout" option.
 MongoCollection::insert"timeout" オプションが追加されました。
 MongoCollection::remove"timeout" オプションが追加されました。
 MongoCollection::save"timeout" オプションが追加されました。
 MongoCollection::update"timeout" オプションが追加されました。
 MongoDB::commandoptions パラメータと、そのオプション "timeout" が追加されました。
1.1.0MongoCursor::info多くのフィールドが追加されました。id (カーソル ID)、 at (現在のドキュメントを表すドライバのカウンタ)、 numReturned (サーバーが現在のバッチで返した件数)、そして server (クエリの送信先のサーバー。 と組み合わせると便利) などです。
1.0.11MongoCollection::ensureIndexThe "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" エラーで接続を切断するようになりました。
1.0.10MongoCursor::infostarted_iterating フィールドが追加されました。boolean で、 このカーソルがクエリ実行前か実行後かを返します。
1.0.9Mongo::__construct"replicaSet" オプションが追加されました。
 MongoCollection::batchInsert"safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。 "fsync" オプションが追加されました。
 MongoCollection::insert"safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。 "fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。
 MongoCollection::remove"safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。 "fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。
 MongoCollection::save"safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。 "fsync" オプションが追加されました。
 MongoCollection::update"safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。 "fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。
1.0.7MongoCollection::countパラメータ limit および skip が追加されました。
1.0.5MongoCollection::batchInsertoptions パラメータが追加されました。
 MongoCollection::ensureIndexAdded the "name" option to override index name creation.
 MongoCollection::insert二番目のパラメータがオプションの配列に変わりました。1.0.5 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。
 MongoCollection::remove二番目のパラメータがオプションの配列に変わりました。1.0.5 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。
 MongoCollection::saveoptions パラメータが追加されました。
 MongoCollection::update"safe" オプションが追加されました。
1.0.2Mongo::__constructコンストラクタがオプションの配列を受け取るようになりました。 以前のバージョンでは、コンストラクタは以下のパラメータを受け取っていました。 server サーバー名。 connect オプションの boolean パラメータで、 コンストラクタがデータベースに接続するかどうかを示します。 デフォルトは TRUE です。 persistent 持続的な接続を行うかどうか。 paired ペア接続を行うかどうか。
 MongoCollection::ensureIndexChanged options parameter from boolean to array. Pre-1.0.2, the second parameter was an optional boolean value specifying a unique index.
1.0.1MongoCollection::insert"safe" オプションが設定されていて追加に失敗した場合に MongoCursorException をスローするようになりました。
 MongoCollection::updateoptions パラメータが boolean から配列に変わりました。 1.0.1 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、upsert を指定するものでした。

Mongo
PHP Manual