MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQueryВыполняет запрос к базе данных

Описание

final public MongoDB\Driver\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, ?array $options = null): MongoDB\Driver\Cursor

Метод выбирает сервер в соответствии с опцией readPreference и выполняет запрос на этом сервере.

Значения по умолчанию для опциии "readPreference" и Query-опции "readConcern" метод получит из активной транзакции, за которой следует URI-идентификатор соединения. Активную транзакцию обозначает опция session.

Список параметров

namespace (string)

Полностью определённое имя (т.е. "databaseName.collectionName").

query (MongoDB\Driver\Query)

Запрос для выполнения.

options

options
Опция Тип Описание
readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

Возвращаемые значения

Метод возвращает курсор MongoDB\Driver\Cursor, если выполнился успешно.

Ошибки

Список изменений

Версия Описание
PECL-модуль mongodb 1.21.0 Передача объекта MongoDB\Driver\ReadPreference как опции параметра options устарела, а с версии 2.0 передачу объекта запретят.
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, если запрос не завершится через секунду после начала выполнения на сервере.

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top