MongoCollection::remove
(PECL mongo >=0.9.0)
MongoCollection::remove — レコードをコレクションから削除する
説明
public bool|array MongoCollection::remove
([ array $criteria
= array()
[, array $options
= array()
]] )
パラメータ
-
criteria
-
削除したいレコードの条件。
-
options
-
削除時のオプションの配列。
現在利用可能なオプションは、以下のとおりです。
-
"w"
WriteConcerns を参照ください。MongoClient でのデフォルト値は 1 です。
-
"justOne"
TRUE
を指定すると、条件にマッチするレコードを 1 件だけ削除します。
FALSE
を指定したり省略したりした場合は、条件にマッチするすべてのレコードを削除します。
"fsync"
Boolean 型で、デフォルトは FALSE
です。
ジャーナリングが有効な場合、これは "j" とまったく同じ動きをします。
ジャーナリングが有効でない場合は、追加をディスク上のデータベースファイルに同期させるまで成功したと見なさないようになります。
TRUE
にすると確認つき書き込みが暗黙のうちに設定され、"w" の値を 0 にします。
注意: ジャーナリングが有効な場合は、"fsync" のかわりに "j" を使いましょう。
"fsync" と "j" を同時に指定すると、エラーになります。
"j"
デフォルトは FALSE
です。これを指定すると、追加をジャーナルに同期させるまで成功したと見なさないようになります。TRUE
にすると確認付き書き込みと見なされ、"w" の設定を 0 に上書きします。
注意: このオプションを使っているときにジャーナリングを無効にすると、MongoDB 2.6 以降ではエラーが発生して書き込みに失敗します。古いバージョンのサーバーでは、単純にオプションの指定を無視します。
"socketTimeoutMS"
このオプションは、ソケット通信の制限時間を、ミリ秒単位で指定します。この時間内にサーバーからの反応がなければ、MongoCursorTimeoutException をスローします。この場合、サーバー側で書き込み処理が行われたのかどうかを判断できなくなります。-1 を指定すると、永遠にブロックします。MongoClient のデフォルト値は 30000 (30 秒) です。
-
"w"
WriteConcerns を参照ください。MongoClient でのデフォルト値は 1 です。
"wTimeoutMS"
このオプションは、書き込み確認を待つ制限時間をミリ秒単位で指定します。これが書き込み操作に適用されるのは、"w" が 1 より大きい場合のみです。というのも、タイムアウトはレプリケーションに関する機能だからです。この時間内に書き込み確認ができなかった場合は MongoCursorException をスローします。0 を指定すると、永遠にブロックし続けます。MongoClient でのデフォルトは 10000 ミリ秒 (10 秒) です。
以下のオプションは廃止予定です。使ってはいけません。
"safe"
非推奨。write concern の w オプションを使いましょう。
"timeout"
非推奨。"socketTimeoutMS" のエイリアス。
"wtimeout"
廃止予定。"wTimeoutMS" のエイリアスです。
エラー / 例外
"w" オプションが設定されていて書き込みが失敗した場合に MongoCursorException をスローします。
"w" オプションの値が 1 より大きく設定されていて、操作の完了までの時間が MongoCursor::$timeout ミリ秒をこえた場合に MongoCursorTimeoutException をスローします。サーバー上での操作は止めません。これはクライアント側でのタイムアウトです。MongoCollection::$wtimeout はミリ秒です。
例
例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--;
}
?>