MongoCollection::remove
(PECL mongo >=0.9.0)
MongoCollection::remove — レコードをコレクションから削除する
説明
$criteria = array()
[, array $options = array()
]] )パラメータ
-
criteria -
削除したいレコードの条件。
-
options -
削除時のオプション。
-
"w"
WriteConcerns を参照ください。MongoClient でのデフォルト値は 1 です。
-
"justOne"
条件にマッチするレコードを 1 件だけ削除します。
-
"fsync"
デフォルトは
FALSEです。 これを指定すると、追加をディスクに同期させるまで成功したと見なさないようになります。TRUEにすると、w の設定を 0 に上書きします。 "timeout"
整数で、デフォルトは MongoCursor::$timeout です。 "safe" が設定されている場合、これはクライアントがデータベースからのレスポンスを待ち続ける時間 (ミリ秒) を表します。 この時間内にデータベースからの反応がなければ、MongoCursorTimeoutException をスローします。
"safe"
非推奨。WriteConcern の w オプションを使いましょう。
-
返り値
"w" が設定されていれば、削除の状態を表す配列を返します。
それ以外の場合は TRUE を返します。
状態を表す配列のフィールドについては MongoCollection::insert() のドキュメントを参照ください。
エラー / 例外
"w" オプションが設定されていて書き込みが失敗した場合に MongoCursorException をスローします。
"w" オプションの値が 1 より大きく設定されていて、操作の完了までの時間が MongoCursor::$timeout ミリ秒をこえた場合に MongoCursorTimeoutException をスローします。サーバー上での操作は止めません。これはクライアント側でのタイムアウトです。MongoCollection::$wtimeout はミリ秒です。
変更履歴
| バージョン | 説明 |
|---|---|
| 1.3.0 |
options パラメータで、boolean
だけを渡して "justOne" を指定することができなくなりました。
同じことをするには array('justOne' => true)
としなければなりません。
|
| 1.2.11 |
options が scalar のときに E_DEPRECATED を発行するようになりました。
|
| 1.2.0 | "timeout" オプションが追加されました。 |
| 1.0.11 | "safe" が設定されている場合は、"not master" エラーで接続を切断するようになりました。 |
| 1.0.9 |
"safe" オプションに整数値がわたせるようになりました (以前は boolean のみでした)。 "fsync" オプションが追加されました。 "safe" オプションを使っている場合の返り値の型が配列に変わりました。 配列にはエラー情報が含まれています。"safe" オプションを使わない場合は、今までどおり boolean のままです。 |
| 1.0.5 | 二番目のパラメータがオプションの配列に変わりました。1.0.5 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。 |
例
例1 MongoCollection::remove() で justOne を使う例
<?php
$radioactive = $db->radioactive;
// プルトニウムがあとどれだけ残っているかを数えます
$remaining = $radioactive->count(array('type' => 94));
$halflife = $remaining/2;
// それを半減させます
while ($halflife > 0) {
$radioactive->remove(array('type' => 94), array("justOne" => true));
$halflife--;
}
?>
参考
- MongoCollection::insert() - 配列をコレクションに追加する
- MongoCollection::update() - 指定した条件にもとづいてレコードを更新する
- MongoDB コアドキュメントの » remove