(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
Опция | Тип | Описание |
---|---|---|
allowPartialResults | boolean |
Для запросов к изолированной коллекции возвращает частичные результаты из mongos, если некоторые шарды недоступны, вместо выдачи ошибки. Возврат к устаревшей "partial" опции, если она не указана. |
awaitData | boolean | Используйте совместно с опцией "tailable", чтобы временно заблокировать операцию getMore для курсора, если в конце данных, а не возвращать никаких данных. После истечения времени ожидания запрос возвращается, как обычно. |
batchSize | integer |
Количество документов для возврата в первом пакете. По умолчанию - 101. Размер пакета 0 означает, что курсор будет установлен, но никакие документы не будут возвращены в первом пакете. В версиях MongoDB до 3.2, где запросы используют устаревший проводной протокол OP_QUERY, размер пакета, равный 1, будет закрывать курсор независимо от количества совпадающих документов. |
collation | array|object |
» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление. Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк. Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения. |
comment | string |
Комментарий для прикрепления к запросу, помогающий интерпретировать и отслеживать данные профиля запроса. Возврат к устаревшему модификатору "$comment", если он не указан. |
exhaust | boolean |
Потоковая передача данных на полную мощность в нескольких "дополнительных" пакетах при условии, что клиент полностью прочитает все запрашиваемые данные. Быстрее, когда вы извлекаете много данных и знаете, что хотите все это перенести. Примечание: клиент не имеет права не читать все данные, если он не закрывает соединение. Эта опция не поддерживается командой find в MongoDB 3.2+ и заставит драйвер использовать устаревшую версию проводного протокола (то есть OP_QUERY). |
explain | boolean |
Если Возврат к устаревшему модификатору "$explain", если он не указан. Эта опция не поддерживается командой find в MongoDB 3.2+ и будет учитываться только при использовании устаревшей версии проводного протокола (т.е. OP_QUERY). Команда » explain должна использоваться на MongoDB 3.0+. |
hint | string|array|object |
Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием хинтованного индекса. Откат к устаревшей опции "hint", если она не указана. |
limit | integer |
Максимальное количество документов для возврата. Если не указано, то по умолчанию используется без ограничений. Значение 0 эквивалентно установке без ограничения.
Отрицательное значение будет интерпретироваться как положительное значение
с параметром "singleBatch", установленным в значение |
max | array|object |
Эксклюзивная верхняя граница для определенного индекса. Возврат к устаревшему модификатору "$max", если он не указан. |
maxAwaitTimeMS | integer |
Положительное целое число, обозначающее ограничение времени в миллисекундах для сервера, чтобы заблокировать операцию getMore, если данные недоступны. Эта опция должна использоваться только в сочетании с опциями "tailable" и "awaitData". |
maxScan | integer |
Внимание
Эта опция устарела и не должна использоваться. Целое положительное число, обозначающее максимальное количество документов или индексных ключей для сканирования при выполнении запроса. Возврат к устаревшему модификатору "$maxScan", если он не указан. |
maxTimeMS | integer |
Накопленный лимит времени в миллисекундах для операций обработки на курсоре. MongoDB прерывает операцию в ближайшей следующей точке прерывания. Возврат к устаревшему модификатору "$maxTimeMS", если он не указан. |
min | array|object |
Включающая нижняя граница для определенного индекса. Возврат к устаревшему модификатору "$min", если он не указан. |
modifiers | array | » Метаоператоры, изменяющие вывод или поведение запроса. Использование этих операторов не рекомендуется в пользу именованных опций. |
noCursorTimeout | boolean | Запрещает серверу синхронизировать незанятые курсоры после периода бездействия (10 минут). |
oplogReplay | boolean |
Внутреннее использование для наборов реплик. Чтобы использовать oplogReplay, вы должны включить в фильтр следующее условие:
[ 'ts' => [ '$gte' => <timestamp> ] ] |
projection | array|object |
» Спецификация проекции для определения полей, которые необходимо включить в возвращаемые документы. Если вы используете функцию ODM для десериализации документов в качестве их исходного класса PHP, убедитесь, что вы включили поле __pclass в проекцию. Это необходимо для работы десериализации, и без нее драйвер вернет (по умолчанию) объект stdClass. |
readConcern | MongoDB\Driver\ReadConcern |
Гарантии чтения, чтобы применить к операции. По умолчанию будут использоваться гарантии чтения из URI подключения MongoDB. Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указано для более старой версии сервера. |
returnKey | boolean |
Если Возврат к устаревшему модификатору "$returnKey", если он не указан. |
showRecordId | boolean |
Определяет, возвращать ли идентификатор записи для каждого
документа. Если Возврат к устаревшему модификатору "$showDiskLoc", если он не указан. |
singleBatch | boolean |
Определяет, закрывать ли курсор после первого пакета.
По умолчанию FALSE .
|
skip | integer | Количество документов для пропуска. По умолчанию 0. |
slaveOk | boolean | Разрешить запрос вторичных наборов реплик |
snapshot | boolean |
Внимание
Эта опция устарела и не должна использоваться. Запрещает курсору возвращать документ более одного раза из-за промежуточной операции записи. Возврат к устаревшему модификатору "$snapshot", если он не указан. |
sort | array|object |
Спецификация сортировки для упорядочения результатов. Возврат к устаревшему модификатору "$orderby", если он не указан. |
tailable | boolean | Возвращает настраиваемый курсор для ограниченной коллекции. |
Версия | Описание |
---|---|
1.5.0 |
Параметры "maxScan" и "snapshot" устарели. |
1.3.0 |
Добавлен параметр "maxAwaitTimeMS". |
1.2.0 |
Добавлен параметр "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", и "snapshot". Переименован параметр "partial" в "allowPartialResults". Для обратной совместимости, "partial" все равно будет прочитан, если "allowPartialResults" не указан. Удален параметр "slaveOk", который устарел. Для запросов, использующих устаревший проводной протокол OP_QUERY, драйвер устанавливает бит slaveOk по мере необходимости в соответствии с » Спецификацией выбора сервера. |
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);
}
?>