Php/docs/mongocollection.remove
MongoCollection::remove
(PECL mongo >=0.9.0)
MongoCollection::remove — Remove records from this collection
Description
public MongoCollection::remove
([ array $criteria
= array()
[, array $options
= array()
]] ) : bool|array
Parameters
criteria
Query criteria for the documents to delete.
options
An array of options for the remove operation. Currently available options include:
"w"
See Write Concerns. The default value for MongoClient is
1
."justOne"
Specify
TRUE
to limit deletion to just one document. IfFALSE
or omitted, all documents matching the criteria will be deleted."fsync"
Boolean, defaults to
FALSE
. If journaling is enabled, it works exactly like"j"
. If journaling is not enabled, the write operation blocks until it is synced to database files on disk. IfTRUE
, an acknowledged insert is implied and this option will override setting"w"
to0
.Note: If journaling is enabled, users are strongly encouraged to use the
"j"
option instead of"fsync"
. Do not use"fsync"
and"j"
simultaneously, as that will result in an error."j"
Boolean, defaults to
FALSE
. Forces the write operation to block until it is synced to the journal on disk. IfTRUE
, an acknowledged write is implied and this option will override setting"w"
to0
.Note: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.
"socketTimeoutMS"
This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of
-1
may be specified to block indefinitely. The default value for MongoClient is30000
(30 seconds)."w"
See Write Concerns. The default value for MongoClient is
1
."wTimeoutMS"
This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when
"w"
is greater than1
, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of0
may be specified to block indefinitely. The default value for MongoClient is10000
(ten seconds).
The following options are deprecated and should no longer be used:
"safe"
Deprecated. Please use the write concern
"w"
option."timeout"
Deprecated alias for
"socketTimeoutMS"
."wtimeout"
Deprecated alias for
"wTimeoutMS"
.
Return Values
Returns an array containing the status of the removal if the
"w"
option is set. Otherwise, returns TRUE
.
Fields in the status array are described in the documentation for MongoCollection::insert().
Errors/Exceptions
Throws MongoCursorException if the "w"
option is set and the write fails.
Throws MongoCursorTimeoutException if the "w"
option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout
milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout
is milliseconds.
Changelog
Version | Description |
---|---|
PECL mongo 1.5.0 |
Added Added Emits |
PECL mongo 1.3.4 | Added "wtimeout" option.
|
PECL mongo 1.3.0 |
Added The |
PECL mongo 1.2.11 | Emits E_DEPRECATED when
|
PECL mongo 1.2.0 | Added "timeout" option.
|
PECL mongo 1.0.11 | Disconnects on "not master" errors if "safe" is set.
|
PECL mongo 1.0.9 |
Added ability to pass integers to the Added The return type was changed to be an array containing error information
if the |
PECL mongo 1.0.5 | Changed second parameter to be an array of options. Pre-1.0.5, the
second parameter was a boolean indicating the |
Examples
Example #1 MongoCollection::remove() with justOne example
<?php$radioactive = $db->radioactive;// count how much more plutonium there is$remaining = $radioactive->count(array('type' => 94));$halflife = $remaining/2;// remove half of itwhile ($halflife > 0) { $radioactive->remove(array('type' => 94), array("justOne" => true)); $halflife--;}?>
See Also
- MongoCollection::insert() - Inserts a document into the collection
- MongoCollection::update() - Update records based on a given criteria
- MongoDB core docs on » remove.