(mongodb >=1.0.0)
MongoDB\Driver\Query::__construct — Создаёт новый запрос
Метод создаёт новый объект MongoDB\Driver\Query — неизменяемый объект значения, который представляет запрос к базе данных. После этого запрос готов к выполнению методом MongoDB\Driver\Manager::executeQuery().
filter
(array|object)» Предикат запроса. Пустой предикат совпадёт со всеми элементами коллекции.
Замечание: При вычислении критериев запроса MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда указан специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).
queryOptions
Опция | Тип | Описание |
---|---|---|
allowDiskUse | bool |
Разрешает БД MongoDB при обработке операции блочной сортировки хранить на диске временные файлы с данными, размер которых превышает 100-мегабайтный предел системной памяти. |
allowPartialResults | bool |
Для запросов к шардированной коллекции вместо выдачи ошибки возвращает из процесса mongos частичные результаты, если отдельные шарды недоступны.
Драйвер откатится к считыванию устаревшей опции |
awaitData | bool |
Опцию указывают совместно с опцией "tailable" ,
чтобы вместо возврата данных временно заблокировать операцию getMore для курсора,
если курсор в конце данных. По истечении времени ожидания запрос возвращается
в стандартном режиме.
|
batchSize | int |
Устанавливает количество документов для возврата в первом пакете. Значение по умолчанию равно 101. Размер пакета 0 означает, что курсор установится, но документы не вернутся в первом пакете. В версиях MongoDB до 3.2, в которых запросы работают по устаревшему проводному протоколу OP_QUERY, размер пакета со значением 1 закроет курсор независимо от количества совпадающих документов. |
collation | array|object |
» Сопоставление
позволяет пользователям указывать специфичные для конкретного языка правила
для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки.
Если задали сопоставление, то поле Если сопоставление не задали явно, но у коллекции определили сопоставление по умолчанию, то будет выбрано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк. Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения. |
comment | mixed |
Добавляет произвольный комментарий, который помогает отслеживать операцию через профилировщик базы данных, данные, которые выводит метод CurrentOp, и журналы. Комментарий добавляют в виде допустимого для MongoDB 4.4+ BSON-типа. Предыдущие версии сервера поддерживают только строковые значения.
Драйвер откатится к считыванию устаревшего модификатора |
exhaust | bool |
Настраивает запрос на потоковую передачу данных клиенту на полную мощность в нескольких «дополнительных» пакетах при условии, что клиент прочитает все данные, которые запросил. Опция уменьшает задержку, когда извлекается много данных и известно, что требуется извлечь все данные. Примечание: клиенту требуется прочитать все данные или закрыть соединение. Опция не поддерживается командой find в MongoDB 3.2+ и заставит драйвер использовать устаревшую версию проводного протокола (то есть OP_QUERY). |
explain | bool |
Со значением
Драйвер откатится к считыванию устаревшего модификатора Команда find в БД MongoDB 3.2+ не поддерживает эту опцию, опцию учитывает только устаревшая версия проводного протокола — с кодом операции OP_QUERY в заголовке сообщения. В БД MongoDB 3.0+ вместо этой опции пользуются командой » explain. |
hint | string|array|object |
Устанавливает спецификацию индекса. Значение опции указывают либо как название индекса в виде строки, либо как шаблон ключа индекса. С этой опцией система запросов будет рассматривать только планы запроса с подсказкой индекса.
Драйвер откатится к считыванию устаревшей опции |
let | array|object |
Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например, Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера. |
limit | int |
Устанавливает максимальное количество документов для возврата. По умолчанию ограничений нет, если опцию не указали. Значение 0 — то же, что отмена ограничения.
Отрицательное значение метод интерпретирует как положительное ограничение
с опцией |
max | array|object |
Устанавливает эксклюзивную верхнюю границу для конкретного индекса.
Драйвер откатится к считыванию устаревшего модификатора |
maxAwaitTimeMS | int |
Принимает положительное целое число, которое устанавливает ограничение времени в миллисекундах,
в течение которого серверу разрешается заблокировать операцию getMore при недоступности данных.
Опцию указывают только в сочетании с опциями
|
maxScan | int |
Внимание
Опция устарела, и лучше не включать её в запрос. Принимает целое положительное число, которое устанавливает максимальное количество документов или индексных ключей для сканирования при выполнении запроса.
Драйвер откатится к считыванию устаревшего модификатора |
maxTimeMS | int |
Совокупный лимит времени в миллисекундах для операций обработки на курсоре. БД MongoDB прерывает операцию в ближайшей следующей точке прерывания.
Драйвер откатится к считыванию устаревшего модификатора |
min | array|object |
Инклюзивная нижняя граница для конкретного индекса.
Драйвер откатится к считыванию устаревшего модификатора |
modifiers | array | » Метаоператоры, которые изменяют вывод или поведение запроса. Эти операторы устарели, вместо них лучше пользоваться именованными опциями. |
noCursorTimeout | bool | Запрещает серверу синхронизировать незанятые курсоры после периода бездействия, который составляет 10 минут. |
oplogReplay | bool |
Опция для внутренних операций с наборами реплик. Опция oplogReplay будет работать, только если включить в фильтр следующее условие:
[ 'ts' => [ '$gte' => <timestamp> ] ]
|
projection | array|object |
» Спецификация проекции, которая помогает определить, какие поля включать в документы, которые возвращает БД. В проекцию включают поле __pclass, если при работе с функциями ODM требуется десериализовать документы в их исходный PHP-класс. Десериализация будет работать только с этим полем, а без него модуль по умолчанию вернёт объект класса stdClass. |
readConcern | MongoDB\Driver\ReadConcern |
Определяет уровень изоляции для операций чтения. По умолчанию модуль использует ограничения считывания из URI-идентификатора подключения к БД MongoDB. Эта опция доступна в MongoDB 3.2+ и выбросит исключение во время выполнения, если опцию указали для более старой версии сервера. |
returnKey | bool |
Со значением
Драйвер откатится к считыванию устаревшего модификатора |
showRecordId | bool |
Определяет, возвращать ли идентификатор записи для каждого
документа. Со значением
Драйвер откатится к считыванию устаревшего модификатора |
singleBatch | bool |
Определяет, закрывать ли курсор после первого пакета.
Значение по умолчанию равно false .
|
skip | int | Определяет количество документов, которое требуется пропустить для пропуска. Значение по умолчанию равно 0. |
snapshot | bool |
Внимание
Опция устарела, и лучше не включать её в запрос. Запрещает курсору возвращать документ больше одного раза из-за промежуточной операции записи.
Драйвер откатится к считыванию устаревшего модификатора |
sort | array|object |
Спецификация сортировки для упорядочения результатов.
Драйвер откатится к считыванию устаревшего модификатора |
tailable | bool | Возвращает хвостовой курсор для ограниченной коллекции. |
Версия | Описание |
---|---|
PECL-модуль mongodb 1.14.0 |
Добавили опцию |
PECL-модуль mongodb 1.8.0 |
Добавили опцию
Опцию |
PECL-модуль mongodb 1.5.0 |
Опции |
PECL-модуль mongodb 1.3.0 |
Добавили опцию |
PECL-модуль mongodb 1.2.0 |
Добавили опции
Опцию
Удалили устаревший параметр |
PECL-модуль mongodb 1.1.0 | Добавили опцию "readConcern" . |
Пример #1 Пример использования метода MongoDB\Driver\Query::__construct()
<?php
/* Выбераем только документы автора "bjori" с количеством просмотров, которое равно или превышает 100 */
$filter = [
'author' => 'bjori',
'views' => [
'$gte' => 100,
],
];
$options = [
/* Возвращаем только следующие поля в соответствующих документах */
'projection' => [
'title' => 1,
'article' => 1,
],
/* Возвращаем документы в порядке убывания просмотров */
'sort' => [
'views' => -1
],
];
$query = new MongoDB\Driver\Query($filter, $options);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, $readPreference);
foreach ($cursor as $document) {
var_dump($document);
}
?>