MongoCollection::insert
MongoCollection::save
MongoCollection
PHP Manual

# 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"

    条件にマッチするレコードを 1 件だけ削除します。

  - "fsync"

    デフォルトは `FALSE` です。 これを指定すると、追加をディスクに同期させるまで成功したと見なさないようになります。 `TRUE` にすると、w の設定を 0 に上書きします。

  - "j"

    デフォルトは `FALSE` です。 これを指定すると、追加をジャーナルに同期させるまで成功したと見なさないようになります。 `TRUE` にすると確認付き書き込みと見なされ、w の設定を 0 に上書きします。

  - "w"

    WriteConcerns を参照ください。MongoClient でのデフォルト値は 1 です。

  - "wtimeout"

    WriteConcern の確認をいつまで待つか。 MongoClient のデフォルトは 10000 ミリ秒です。

  - "safe"

    非推奨。WriteConcern の w オプションを使いましょう。

  - "timeout"

    整数で、デフォルトは MongoCursor::$timeout です。 確認付き書き込みを使っている場合、これはクライアントがデータベースからのレスポンスを待ち続ける時間 (ミリ秒) を表します。 この時間内にデータベースからの反応がなければ、MongoCursorTimeoutException をスローします。

### 返り値

"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

MongoCollection::insert
MongoCollection::save
MongoCollection
PHP Manual