(mongodb >=1.0.0)
MongoDB\Driver\Manager::executeQuery — Выполняет запрос к базе данных
$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
| Опция | Тип | Описание | 
|---|---|---|
| readPreference | MongoDB\Driver\ReadPreference | Предпочтение чтения, используемая для выбора сервера для выполнения операции. | 
| session | MongoDB\Driver\Session | Сессия для связывания с операцией. | 
Метод возвращает курсор MongoDB\Driver\Cursor, если выполнился успешно.
| Версия | Описание | 
|---|---|
| PECL-модуль mongodb 2.0.0 | Параметр optionsбольше не принимает
        объекты MongoDB\Driver\ReadPreference. | 
| 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, если запрос не завершится через секунду после начала выполнения на сервере.
