Mongo
PHP Manual

変更履歴

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

MongoDB PHP Driver 1.3.0

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

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

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

既存のメソッドへの変更

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

VersionFunctionDescription
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::ensureIndexoptions パラメータで、boolean だけを渡してユニークインデックスを指定することができなくなりました。 同じことをするには array('unique' => true) としなければなりません。
 MongoCollection::insertoptions パラメータで、boolean だけを渡して確認付きの書き込みを指定することができなくなりました。 同じことをするには array('w' => 1) (MongoClient のデフォルト) としなければなりません。
 MongoCollection::removeoptions パラメータで、boolean だけを渡して "justOne" を指定することができなくなりました。 同じことをするには array('justOne' => true) としなければなりません。
 MongoCollection::updateoptions パラメータで、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::ensureIndexoptions が scalar のときに E_DEPRECATED を発行するようになりました。
 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::ensureIndex"timeout" オプションが追加されました。
 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::ensureIndex"safe" は必要に応じてプライマリのフェイルオーバーを行うようになりました。 インデックス名 (自動生成されたものあるいは設定したもののどちらでも) の長さが 128 バイトを超えた場合に MongoException をスローするようになりました。
 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::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::ensureIndexoptions パラメータが boolean から配列に変わりました。 1.0.2 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、一意なインデックスを指定するものでした。
1.0.1MongoCollection::insert"safe" オプションが設定されていて追加に失敗した場合に MongoCursorException をスローするようになりました。
 MongoCollection::updateoptions パラメータが boolean から配列に変わりました。 1.0.1 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、upsert を指定するものでした。

Mongo
PHP Manual