MongoCursor::addOption
(PECL mongo >=1.0.4)
MongoCursor::addOption — Adds a top-level key/value pair to a query
Описание
This is an advanced function and should not be used unless you know what you're doing.
A query can optionally be nested in a "query" field if other options, such as a sort or hint, are given. For instance, adding a sort causes the query to become a subfield of a bigger query object, like:
<?php
$query = array("query" => $query, "orderby" => $sort);
?>
This method is for adding a top-level field to a query. It makes the query a subobject (if it isn't already) and adds the key/value pair of your chosing to the top level.
It cannot be used to add extra criteria to a query on the fly. For instance, this will not work:
<?php
// NOT CORRECT
$cursor = $users->find()->addOption("name", "joe")->addOption("age", 20);
?>
Список параметров
-
key
-
Fieldname to add.
-
value
-
Value to add.
Возвращаемые значения
Returns this cursor.
Ошибки
Throws MongoCursorException if this cursor has started iterating.
Примеры
Пример #1 Adding a comment with MongoCursor::addOption() example
MongoDB supports special options to be send to the server. The shell uses the _addSpecial option to send a $comment to the server. This comment will show up in the profiling log (for slow queries f.e.). In the PHP driver, you use the MongoCursor::addOption() method.
<?php
$m = new MongoClient;
$c = $m->demo->demo;
$cursor = $c->find();
$cursor->addOption('$comment', "This comment will show up in the profiling log");
foreach ($cursor as $document) { /* empty */ }
?>
Результатом выполнения данного примера будет что-то подобное:
{ "op" : "query", "ns" : "demo.demo", "query" : { "$query" : { }, "$comment" : "This comment will show up in the profiling log" }, "cursorid" : 168463566447, "ntoreturn" : 0, "ntoskip" : 0, "nscanned" : 101, "nscannedObjects" : 101, "keyUpdates" : 0, "numYield" : 0, …
Пример #2 MongoCursor::addOption() example
Using MongoCursor::skip() to skip over millions of results can become slow. One way around this is to use $min or $max options for the query. These can be handy, but they require an index on exactly the fields being searched for. This is an example of how to use $min as an alternative to MongoCursor::skip().
<?php
// make sure we have an index
$c->ensureIndex(array("ts" => 1));
// you may have to modify this to run in a reasonable amount of time on slow
// machines (should take about 30 seconds on a good machine)
for ($i = 0; $i < 30000000; $i++) {
$c->insert(array("ts" => new MongoDate(), "i" => $i));
}
$now = strtotime("now");
// find documents inserted in the last 2 seconds
$cursor = $c->find()->addOption('$min', array("ts" => $now-2));
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- MongoDB
- Базовые классы
- Функция MongoCursor::addOption() - Adds a top-level key/value pair to a query
- Функция MongoCursor::awaitData() - Sets whether this cursor will wait for a while for a tailable cursor to return more data
- Функция MongoCursor::batchSize() - Limits the number of elements returned in one batch.
- Функция MongoCursor::__construct() - Create a new cursor
- Функция MongoCursor::count() - Counts the number of results for this query
- Функция MongoCursor::current() - Returns the current element
- Функция MongoCursor::dead() - Checks if there are documents that have not been sent yet from the database for this cursor
- Функция MongoCursor::doQuery() - Execute the query.
- Функция MongoCursor::explain() - Return an explanation of the query, often useful for optimization and debugging
- Функция MongoCursor::fields() - Sets the fields for a query
- Функция MongoCursor::getNext() - Return the next object to which this cursor points, and advance the cursor
- Функция MongoCursor::getReadPreference() - Get the read preference for this query
- Функция MongoCursor::hasNext() - Checks if there are any more elements in this cursor
- Функция MongoCursor::hint() - Gives the database a hint about the query
- Функция MongoCursor::immortal() - Sets whether this cursor will timeout
- Функция MongoCursor::info() - Gets the query, fields, limit, and skip for this cursor
- Функция MongoCursor::key() - Returns the current result's _id
- Функция MongoCursor::limit() - Limits the number of results returned
- Функция MongoCursor::maxTimeMS() - Sets a server-side timeout for this query
- Функция MongoCursor::next() - Advances the cursor to the next result
- Функция MongoCursor::partial() - If this query should fetch partial results from mongos if a shard is down
- Функция MongoCursor::reset() - Clears the cursor
- Функция MongoCursor::rewind() - Returns the cursor to the beginning of the result set
- Функция MongoCursor::setFlag() - Sets arbitrary flags in case there is no method available the specific flag
- Функция MongoCursor::setReadPreference() - Set the read preference for this query
- Функция MongoCursor::skip() - Skips a number of results
- Функция MongoCursor::slaveOkay() - Sets whether this query can be done on a secondary [deprecated]
- Функция MongoCursor::snapshot() - Use snapshot mode for the query
- Функция MongoCursor::sort() - Sorts the results by given fields
- Функция MongoCursor::tailable() - Sets whether this cursor will be left open after fetching the last results
- Функция MongoCursor::timeout() - Sets a client-side timeout for this query
- Функция MongoCursor::valid() - Checks if the cursor is reading a valid result.
Коментарии
404 Not Found