MongoDB\Driver\Manager::executeQuery
(mongodb >=1.0.0)
MongoDB\Driver\Manager::executeQuery — Выполняет запрос к базе данных
Описание
$namespace
, MongoDB\Driver\Query $query
, array $options
= array()
) : MongoDB\Driver\Cursor
Выбирает сервер в соответствии с опцией "readPreference"
и выполняет запрос на этом сервере.
По умолчанию будет использоваться предпочтение чтения из URI
URI подключения MongoDB.
Список параметров
-
namespace
(string) -
Полностью определенное имя (т.е.
"databaseName.collectionName"
). -
query
(MongoDB\Driver\Query) -
Запрос для выполнения.
-
options
-
options Опция Тип Описание readPreference MongoDB\Driver\ReadPreference Предпочтение чтения, используемая для выбора сервера для выполнения операции.
session MongoDB\Driver\Session Сессия для связывания с операцией.
Возвращаемые значения
В случае успеха возвращает MongoDB\Driver\Cursor.
Ошибки
- При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
- При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
- При возникновении других ошибок (например, неправильные операторы запроса), выбрасывает исключение MongoDB\Driver\Exception\RuntimeException.
Список изменений
Версия | Описание |
---|---|
PECL mongodb 1.4.0 |
Третий параметр теперь представляет собой массив options .
Для обратной совместимости этот параметр все равно примет объект MongoDB\Driver\ReadPreference.
|
Примеры
Пример #1 Пример использования MongoDB\Driver\Manager::executeQuery()
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);
$filter = ['x' => ['$gt' => 1]];
$options = [
'projection' => ['_id' => 0],
'sort' => ['x' => -1],
];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);
foreach ($cursor as $document) {
var_dump($document);
}
?>
Результат выполнения данного примера:
object(stdClass)#6 (1) { ["x"]=> int(3) } object(stdClass)#7 (1) { ["x"]=> int(2) }
Пример #2 Ограничение времени выполнения запроса
Опция "maxTimeMS"
класса MongoDB\Driver\Query
может использоваться для ограничения времени выполнения запроса. Обратите внимание, что
этот срок применяется на стороне сервера и не учитывает задержки сети.
Смотрите » Завершение выполнения операций
в руководстве MongoDB для получения дополнительной информации.
<?php
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$filter = ['x' => ['$gt' => 1]];
$options = [
'maxTimeMS' => 1000,
];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);
foreach ($cursor as $document) {
var_dump($document);
}
?>
Если запрос не завершится через секунду после начала выполнения на сервере, будет выброшено исключение MongoDB\Driver\Exception\ExecutionTimeoutException.
Смотрите также
- MongoDB\Driver\Cursor
- MongoDB\Driver\Query
- MongoDB\Driver\ReadPreference
- MongoDB\Driver\Server::executeQuery() - Выполняет запрос к базе данных на сервере