(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 и журналов. Комментарий может быть любым допустимым типом BSON для MongoDB 4.4+. Более ранние версии сервера поддерживают только строковые значения.
Возврат к устаревшему модификатору |
exhaust | bool |
Потоковая передача данных на полную мощность в нескольких "дополнительных" пакетах при условии, что клиент полностью прочитает все запрашиваемые данные. Быстрее, когда вы извлекаете много данных и знаете, что хотите все это перенести. Примечание: клиент не имеет права не читать все данные, если он не закрывает соединение. Эта опция не поддерживается командой find в MongoDB 3.2+ и заставит драйвер использовать устаревшую версию проводного протокола (то есть OP_QUERY). |
explain | bool |
Если
Возврат к устаревшему модификатору Эта опция не поддерживается командой find в MongoDB 3.2+ и будет учитываться только при использовании устаревшей версии проводного протокола (т.е. OP_QUERY). Команда » explain должна использоваться на MongoDB 3.0+. |
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 |
» Спецификация проекции для определения полей, которые необходимо включить в возвращаемые документы. Если вы используете функцию ODM для десериализации документов в качестве их исходного класса PHP, убедитесь, что вы включили поле __pclass в проекцию. Это необходимо для работы десериализации, и без неё драйвер вернёт (по умолчанию) объект 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::RP_PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, $readPreference);
foreach($cursor as $document) {
var_dump($document);
}
?>