MongoGridFSException
mSQL
Mongo
PHP Manual

# 変更履歴

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

### MongoDB PHP Driver 1.3.0

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

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

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

### 既存のメソッドへの変更

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

Version | Function | Description
--- | --- | ---
1.4.0 | Mongo::__construct | "wTimeoutMS" オプションが追加されました。これは "wTimeout" の代替です。
| MongoCursor::hint | index 引数に、文字列でインデックス名を指定できるよういなりました。 これより前のバージョンでは、配列またはオブジェクトしか渡せませんでした。
| MongoCursor::setFlag | フラグ 3 (OPLOG_REPLAY) をサポートするようになりました。 以前のバージョンでは、このフラグには対応していないという警告が出ていました。
| MongoDB::createCollection | 1.4.0 より前のバージョンでは、個々のオプションがすべてメソッドの引数になっていました。 旧バージョンのシグネチャは、次のとおりです。 public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 各オプションの意味は、先ほど options 引数のところで説明したとおりです。
1.3.4 | Mongo::__construct | "connectTimeoutMS" および "socketTimeoutMS" オプションが追加されました。
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 はコロン区切りの文字列ではなくキー/値のペアでタグを表すようになりました。
1.3.0 | Mongo::close | connection パラメータが追加されました。 それより前のバージョンでは、このメソッドで閉じられるのは書き込み接続だけでした。
| Mongo::__construct | "readPreference"、 "readPreferenceTags"、"w" および "wTimeout" オプションが追加されました。
| MongoCollection::ensureIndex | options パラメータで、boolean だけを渡してユニークインデックスを指定することができなくなりました。 同じことをするには array('unique' => true) としなければなりません。
| MongoCollection::insert | options パラメータで、boolean だけを渡して確認付きの書き込みを指定することができなくなりました。 同じことをするには array('w' => 1) (MongoClient のデフォルト) としなければなりません。
| MongoCollection::remove | options パラメータで、boolean だけを渡して "justOne" を指定することができなくなりました。 同じことをするには array('justOne' => true) としなければなりません。
| MongoCollection::update | options パラメータで、boolean だけを渡して upsert を指定することができなくなりました。 同じことをするには array('upsert'' => true) としなければなりません。
| MongoDB::listCollections | includeSystemCollections が追加されました。
| MongoGridFSCursor::key | ドキュメントの _id を文字列で返すようになりました。 キーは一意であるはずだからです。 これより前のバージョンでは filename を返していました。
1.2.11 | Mongo::getPoolSize | E_DEPRECATED を発行するようになりました。
| Mongo::getSlave | E_DEPRECATED を発行するようになりました。
| Mongo::getSlaveOkay | E_DEPRECATED を発行するようになりました。
| Mongo::poolDebug | E_DEPRECATED を発行するようになりました。
| Mongo::setSlaveOkay | E_DEPRECATED を発行するようになりました。
| Mongo::switchSlave | E_DEPRECATED を発行するようになりました。
| MongoBinData::__construct | 二番目の引数を省略すると E_DEPRECATED を発行します。 type のデフォルト値は近い将来変わる見込みです。
| MongoCollection::ensureIndex | options が scalar のときに E_DEPRECATED を発行するようになりました。
| MongoCollection::getSlaveOkay | E_DEPRECATED を発行するようになりました。
| MongoCollection::group | options が scalar のときに E_DEPRECATED を発行するようになりました。
| MongoCollection::remove | options が scalar のときに E_DEPRECATED を発行するようになりました。
| MongoCollection::setSlaveOkay | E_DEPRECATED を発行するようになりました。
| MongoCollection::update | options が scalar のときに E_DEPRECATED を発行するようになりました。
| MongoCursor::doQuery | E_DEPRECATED を発行するようになりました。
| MongoDB::authenticate | E_DEPRECATED を発行するようになりました。 認証情報の詳細をコンストラクタに渡しましょう。
| MongoDB::forceError | E_DEPRECATED を発行するようになりました。
| MongoDB::getSlaveOkay | E_DEPRECATED を発行するようになりました。
| MongoDB::prevError | E_DEPRECATED を発行するようになりました。
| MongoDB::resetError | E_DEPRECATED を発行するようになりました。
| MongoDB::setSlaveOkay | E_DEPRECATED を発行するようになりました。
| MongoPool::getSize | E_DEPRECATED を発行するようになりました。
| MongoPool::info | E_DEPRECATED を発行するようになりました。
| MongoPool::setSize | E_DEPRECATED を発行するようになりました。
1.2.10 | Mongo::getHosts | レプリカセットでない場合もサポートするようになりました。 返される配列の要素に、新たに hostname と port を含むようになりました。
1.2.7 | MongoCollection::batchInsert | "continueOnError" オプションが追加されました。
1.2.5 | MongoGridFS::storeUpload | 二番目のパラメータがメタデータの配列に変わりました。これより前のバージョンでは、 二番目のパラメータはオプションの文字列で、ファイル名を上書きするものでした。
1.2.0 | Mongo::close | 1.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::command | options パラメータと、そのオプション "timeout" が追加されました。
1.1.0 | MongoCursor::info | 多くのフィールドが追加されました。id (カーソル ID)、 at (現在のドキュメントを表すドライバのカウンタ)、 numReturned (サーバーが現在のバッチで返した件数)、そして server (クエリの送信先のサーバー。 と組み合わせると便利) などです。
1.0.11 | MongoCollection::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.10 | MongoCursor::info | started_iterating フィールドが追加されました。boolean で、 このカーソルがクエリ実行前か実行後かを返します。
1.0.9 | Mongo::__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.7 | MongoCollection::count | パラメータ limit および skip が追加されました。
1.0.5 | MongoCollection::batchInsert | options パラメータが追加されました。
| MongoCollection::ensureIndex | "name" オプションで、インデックス名の作成を上書きできるようになりました。 creation.
| MongoCollection::insert | 二番目のパラメータがオプションの配列に変わりました。1.0.5 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。
| MongoCollection::remove | 二番目のパラメータがオプションの配列に変わりました。1.0.5 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。
| MongoCollection::save | options パラメータが追加されました。
| MongoCollection::update | "safe" オプションが追加されました。
1.0.2 | Mongo::__construct | コンストラクタがオプションの配列を受け取るようになりました。 以前のバージョンでは、コンストラクタは以下のパラメータを受け取っていました。 server サーバー名。 connect オプションの boolean パラメータで、 コンストラクタがデータベースに接続するかどうかを示します。 デフォルトは TRUE です。 persistent 持続的な接続を行うかどうか。 paired ペア接続を行うかどうか。
| MongoCollection::ensureIndex | options パラメータが boolean から配列に変わりました。 1.0.2 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、一意なインデックスを指定するものでした。
1.0.1 | MongoCollection::insert | "safe" オプションが設定されていて追加に失敗した場合に MongoCursorException をスローするようになりました。
| MongoCollection::update | options パラメータが boolean から配列に変わりました。 1.0.1 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、upsert を指定するものでした。

MongoGridFSException
mSQL
Mongo
PHP Manual