MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__constructСоздаёт новый запрос

Описание

finalpublicMongoDB\Driver\Query::__construct(array|object$filter, ?array$queryOptions = null)

Создаёт новый MongoDB\Driver\Query, который является объектом неизменяемого значения, представляющим запрос к базе данных. Затем запрос может быть выполнен с помощью MongoDB\Driver\Manager::executeQuery().

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

filter (array|object)

» Предикат запроса. Пустой предикат совпадёт со всеми элементами коллекции.

Замечание: При вычислении критериев запроса MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда указан специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).

queryOptions

queryOptions
ОпцияТипОписание
allowDiskUsebool

Позволяет MongoDB использовать временные файлы на диске для хранения данных, превышающих предел системной памяти в 100 мегабайт, при обработке операции сортировки блокировки.

allowPartialResultsbool

Для запросов к изолированной коллекции возвращает частичные результаты из mongos, если некоторые шарды недоступны, вместо выдачи ошибки.

Возврат к устаревшей "partial" опции, если она не указана.

awaitDatabool Используйте совместно с опцией "tailable", чтобы временно заблокировать операцию getMore для курсора, если в конце данных, а не возвращать никаких данных. После истечения времени ожидания запрос возвращается, как обычно.
batchSizeint

Количество документов для возврата в первом пакете. По умолчанию - 101. Размер пакета 0 означает, что курсор будет установлен, но никакие документы не будут возвращены в первом пакете.

В версиях MongoDB до 3.2, где запросы используют устаревший проводной протокол OP_QUERY, размер пакета, равный 1, будет закрывать курсор независимо от количества совпадающих документов.

collationarray|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задали сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задали явно, но у коллекции определили сопоставление по умолчанию, то будет выбрано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

commentmixed

Произвольный комментарий, помогающий отследить операцию с помощью профилировщика базы данных, вывода CurrentOp и журналов.

Комментарий может быть любым допустимым типом BSON для MongoDB 4.4+. Более ранние версии сервера поддерживают только строковые значения.

Возврат к устаревшему модификатору "$comment", если он не указан.

exhaustbool

Потоковая передача данных на полную мощность в нескольких "дополнительных" пакетах при условии, что клиент полностью прочитает все запрашиваемые данные. Быстрее, когда вы извлекаете много данных и знаете, что хотите все это перенести. Примечание: клиент не имеет права не читать все данные, если он не закрывает соединение.

Эта опция не поддерживается командой find в MongoDB 3.2+ и заставит драйвер использовать устаревшую версию проводного протокола (то есть OP_QUERY).

explainbool

Если true, возвращённый MongoDB\Driver\Cursor будет содержать один документ, который описывает процесс и индексы, используемые для возврата запроса.

Возврат к устаревшему модификатору "$explain", если он не указан.

Эта опция не поддерживается командой find в MongoDB 3.2+ и будет учитываться только при использовании устаревшей версии проводного протокола (т.е. OP_QUERY). Команда » explain должна использоваться на MongoDB 3.0+.

hintstring|array|object

Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием хинтованного индекса.

Откат к устаревшей опции "hint", если она не указана.

letarray|object

Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например, $$var).

Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера.

limitint

Максимальное количество документов для возврата. Если не указано, то по умолчанию используется без ограничений. Значение 0 эквивалентно установке без ограничения.

Отрицательное значение будет интерпретироваться как положительное значение с параметром "singleBatch", установленным в значение true. Это поведение поддерживается для обратной совместимости, но его следует считать устаревшим.

maxarray|object

Эксклюзивная верхняя граница для определённого индекса.

Возврат к устаревшему модификатору "$max", если он не указан.

maxAwaitTimeMSint

Положительное целое число, обозначающее ограничение времени в миллисекундах для сервера, чтобы заблокировать операцию getMore, если данные недоступны. Эта опция должна использоваться только в сочетании с опциями "tailable" и "awaitData".

maxScanint
Внимание

Эта опция устарела и не должна использоваться.

Целое положительное число, обозначающее максимальное количество документов или индексных ключей для сканирования при выполнении запроса.

Возврат к устаревшему модификатору "$maxScan", если он не указан.

maxTimeMSint

Накопленный лимит времени в миллисекундах для операций обработки на курсоре. MongoDB прерывает операцию в ближайшей следующей точке прерывания.

Возврат к устаревшему модификатору "$maxTimeMS", если он не указан.

minarray|object

Включающая нижняя граница для определённого индекса.

Возврат к устаревшему модификатору "$min", если он не указан.

modifiersarray» Метаоператоры, изменяющие вывод или поведение запроса. Использование этих операторов не рекомендуется в пользу именованных опций.
noCursorTimeoutbool Запрещает серверу синхронизировать незанятые курсоры после периода бездействия (10 минут).
oplogReplaybool

Внутреннее использование для наборов реплик. Чтобы использовать oplogReplay, вы должны включить в фильтр следующее условие:

[ 'ts' => [ '$gte' => <timestamp> ] ]

Замечание: Опция устарела с версии 1.8.0.

projectionarray|object

» Спецификация проекции для определения полей, которые необходимо включить в возвращаемые документы.

Если вы используете функцию ODM для десериализации документов в качестве их исходного класса PHP, убедитесь, что вы включили поле __pclass в проекцию. Это необходимо для работы десериализации, и без неё драйвер вернёт (по умолчанию) объект stdClass.

readConcernMongoDB\Driver\ReadConcern

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

Эта опция доступна в MongoDB 3.2+ и приведёт к исключению во время выполнения, если указано для более старой версии сервера.

returnKeybool

Если true, возвращает только индексные ключи в результирующих документах. Значением по умолчанию является false. Если true и команда find не используют индекс, возвращённые документы будут пустыми.

Возврат к устаревшему модификатору "$returnKey", если он не указан.

showRecordIdbool

Определяет, возвращать ли идентификатор записи для каждого документа. Если true, добавляет поле "$recordId" верхнего уровня к возвращённым документам.

Возврат к устаревшему модификатору "$showDiskLoc", если он не указан.

singleBatchbool Определяет, закрывать ли курсор после первого пакета. По умолчанию false.
skipintКоличество документов для пропуска. По умолчанию 0.
snapshotbool
Внимание

Эта опция устарела и не должна использоваться.

Запрещает курсору возвращать документ более одного раза из-за промежуточной операции записи.

Возврат к устаревшему модификатору "$snapshot", если он не указан.

sortarray|object

Спецификация сортировки для упорядочения результатов.

Возврат к устаревшему модификатору "$orderby", если он не указан.

tailableboolВозвращает настраиваемый курсор для ограниченной коллекции.

Ошибки

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

ВерсияОписание
PECL mongodb 1.14.0

Добавлена опция "let". Опция "comment" теперь принимает любой тип.

PECL mongodb 1.8.0

Добавлен параметр "allowDiskUse".

Параметр "oplogReplay" объявлен устаревшим.

PECL mongodb 1.5.0

Параметры "maxScan" и "snapshot" устарели.

PECL mongodb 1.3.0

Добавлен параметр "maxAwaitTimeMS".

PECL mongodb 1.2.0

Добавлен параметр "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", и "snapshot".

Переименован параметр "partial" в "allowPartialResults". Для обратной совместимости, "partial" всё равно будет прочитан, если "allowPartialResults" не указан.

Удалён устаревший параметр "secondaryOk". Для запросов, использующих устаревший проводной протокол OP_QUERY, драйвер установит бит secondaryOk по мере необходимости в соответствии с » Спецификацией выбора сервера.

PECL mongodb 1.1.0Добавлен параметр "readConcern".

Примеры

Пример #1 Пример использования MongoDB\Driver\Query::__construct()

<?php

$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);
}

?>

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

To Top