この拡張モジュールのクラス/関数/メソッドには次のような変更がありました。
MongoDB 2.6 の新機能に対応しました。たとえば以下のようなものです。
このリリースでは、ドキュメントで非推奨とされていた機能のいくつかについて、 実際に非推奨のメッセージを出すようになりました。たとえば、以下のような機能がその対象です。
注意:
非推奨とされていた機能の中で、実際に削除されたものは、まだありません。
以下の挙動が、変わりました。
1.4 系では、MongoDB サーバーへの接続を確立する方法が根本的に変わりました。 PHP ネイティブストリームを使うようになったので、PHP のストリームのオプションがすべて使えます。 さらに、実験的に、ストリームコンテキストのサポートも追加されました。
1.4.x 系ではまた、MongoDB 2.4.x のサポートも追加されています。
特筆すべき改良点はレプリカセットの処理で、中でも、 タイムアウトしたノードやさまざまな要員で到達できないノードの扱いが改善されました。 それ以外にも、ノード間での書き込み確認の問題にも対応しています。 また、SSL を使った接続にも対応し、接続文字列のオプションとして journal や fsync にも対応しました。
1.3 系では大きな変更が加わりました。 接続処理 が新しく書き直され (同時にプーリングが削除され) たり、 優先読み込み に対応したり、デフォルトの WriteConcerns が確認付きになったりしました。新しく導入されたクラス MongoClient がこれらを扱います。 これは、非推奨になった Mongo クラスのかわりに使うものです。
また、複数の mongos インスタンス (Mongo Shard ルーター) に接続してロードバランシングができるようになりました。
その他の追加機能には、MongoLog のログ機能の改良 (接続処理のデバッグがしやすくなりました) や MongoCollection::aggregate() メソッドによる » Aggregation Framework のサポートなどがあります。
既存のメソッドの中で、初期のバージョンから改良が加えられたものをまとめます。
Version | Function | Description |
---|---|---|
1.7.0 | MongoDB::execute | このメソッドは非推奨になりました。内部で使っている eval コマンドが、MongoDB 3.0 以降で非推奨になったためです。 |
1.6.0 | MongoCollection::count | 二番目のパラメータが配列 options に変わりました。 limit や skip を二番目、三番目のパラメータとして渡す方法は、非推奨になりました。 |
MongoDB::getCollectionNames | 最初のパラメータがオプションの配列に変わりました。以前のバージョンでは最初のパラメータは boolean で、 "includeSystemCollections" オプションの値を指定するものでした。 | |
MongoDB::listCollections | 最初のパラメータがオプションの配列に変わりました。以前のバージョンでは最初のパラメータは boolean で、 "includeSystemCollections" オプションの値を指定するものでした。 | |
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 | デフォルトが 2 (MongoBinData::BYTE_ARRAY) から 0 (MongoBinData::GENERIC) に変わりました。 | |
Mongo::__construct | "authSource" が追加されました。 | |
Mongo::__construct | "authMechanism"、"gssapiServiceName" および "secondaryAcceptableLatencyMS" が追加されました。 | |
MongoCollection::aggregate | オプションの引数 options が追加されました。 | |
MongoCollection::batchInsert | "wTimeoutMS" オプションが追加されました。これは "wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。 | |
MongoCollection::ensureIndex | "wTimeoutMS" オプションが追加されました。これは "wtimeout" を置き換えるものです。 "wtimeout" を使うと E_DEPRECATED が発生します。 "socketTimeoutMS" オプションが追加されました。これは "timeout" を置き換えるものです。 "timeout" を使うと E_DEPRECATED が発生します。 "safe" を使うと E_DEPRECATED が発生します。 | |
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 | このメソッドは非推奨になりました。かわりに MongoCursor::setReadPreference と を使いましょう。 | |
MongoDB::command | オプション "timeout" の名前が "socketTimeoutMS" に変わりました。 "wtimeout" を使うと、E_DEPRECATED が発生します。 参照渡しの hash パラメータが追加されました。 | |
1.4.5 | MongoCursor::batchSize | 1.4.5 より前のバージョンでは、このメソッドは、 カーソルの反復処理が始まっている場合に MongoCursorException をスローしていました。 |
1.4.0 | Mongo::__construct | "ssl" オプションが追加されました。これは SSL 接続 をサポートするものです。 "wTimeoutMS" オプションが追加されました。これは "wTimeout" の代替です。 "slaveOkay" や "timeout" を使うと E_DEPRECATED が発生します。 |
MongoCursor::hint | index 引数に、文字列でインデックス名を指定できるよういなりました。 これより前のバージョンでは、配列またはオブジェクトしか渡せませんでした。 | |
MongoCursor::setFlag | フラグ 3 (OPLOG_REPLAY) をサポートするようになりました。 以前のバージョンでは、このフラグには対応していないという警告が出ていました。 | |
MongoDB::createCollection | 1.4.0 より前のバージョンでは、個々のオプションがすべてメソッドの引数になっていました。 旧バージョンのシグネチャは、次のとおりです。 public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 各オプションの意味は、先ほど options 引数のところで説明したとおりです。 | |
MongoId::__construct | 無効な文字列を渡したときに例外をスローするようになりました。 | |
1.3.4 | Mongo::__construct | "connectTimeoutMS" および "socketTimeoutMS" オプションが追加されました。 |
MongoCollection::batchInsert | "wtimeout" オプションが追加されました。 | |
MongoCollection::ensureIndex | "wtimeout" オプションが追加されました。 | |
MongoCollection::insert | "wtimeout" オプションが追加されました。 | |
MongoCollection::remove | "wtimeout" オプションが追加されました。 | |
MongoCollection::update | "wtimeout" オプションが追加されました。 | |
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::batchInsert | "w" オプションが追加されました。 | |
MongoCollection::ensureIndex | "w" オプションが追加されました。 options パラメータで、boolean だけを渡してユニークインデックスを指定することができなくなりました。 同じことをするには 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 を返していました。 | |
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 | "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" オプションで、インデックス名の作成を上書きできるようになりました。 | |
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 値で、一意なインデックスを指定するものでした。 | |
MongoCollection::insert | 二番目のパラメータがオプションの配列に変わりました。1.0.2 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。 | |
1.0.1 | MongoCollection::insert | "safe" オプションが設定されていて追加に失敗した場合に MongoCursorException をスローするようになりました。 |
MongoCollection::update | options パラメータが boolean から配列に変わりました。 1.0.1 より前のバージョンでは二番目のパラメータはオプションの boolean 値で、upsert を指定するものでした。 |