MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

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

Описание

final public MongoDB\Driver\Query::__construct ( array|object $filter , array $queryOptions = ? )

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

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

filter (array|object)

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

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

queryOptions

queryOptions
Опция Тип Описание
allowDiskUse bool

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

allowPartialResults bool

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

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

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

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

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

collation array|object

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

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

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

comment string

Комментарий для прикрепления к запросу, помогающий интерпретировать и отслеживать данные профиля запроса.

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

exhaust bool

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

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

explain bool

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

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

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

hint string|array|object

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

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

limit int

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

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

max array|object

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

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

maxAwaitTimeMS int

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

maxScan int
Внимание

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

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

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

maxTimeMS int

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

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

min array|object

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

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

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

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

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

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

projection array|object

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

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

readConcern MongoDB\Driver\ReadConcern

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

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

returnKey bool

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

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

showRecordId bool

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

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

singleBatch bool Определяет, закрывать ли курсор после первого пакета. По умолчанию false.
skip int Количество документов для пропуска. По умолчанию 0.
slaveOk bool Разрешить запрос вторичных наборов реплик
snapshot bool
Внимание

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

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

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

sort array|object

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

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

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

Ошибки

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

Версия Описание
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" не указан.

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

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

?>

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