Класс yii\mongodb\QueryBuilder
| Наследование | yii\mongodb\QueryBuilder » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.1 |
| Исходный код | https://github.com/yiisoft/yii2-mongodb/blob/master/QueryBuilder.php |
QueryBuilder создаёт операторы команд MongoDB.
Он используется классом yii\mongodb\Command для составления конкретных команд и запросов.
MongoDB использует формат JSON для указания условий запроса со специфичной синтаксической структурой. Однако метод buildCondition() предоставляет возможность "перевода" распространённого формата условий, используемого в "yii\db*", в условия MongoDB. Например:
$condition = [
[
'OR',
['AND', ['first_name' => 'John'], ['last_name' => 'Smith']],
['status' => [1, 2, 3]]
],
];
print_r(Yii::$app->mongodb->getQueryBuilder()->buildCondition($condition));
// outputs :
[
'$or' => [
[
'first_name' => 'John',
'last_name' => 'John',
],
[
'status' => ['$in' => [1, 2, 3]],
]
]
]
Примечание: значения условий для ключа '_id' будут автоматически преобразованы в экземпляр \MongoDB\BSON\ObjectID, даже если они являются обычными строками. Однако, если у вас есть другие столбцы, содержащие \MongoDB\BSON\ObjectID, вы должны самостоятельно позаботиться о возможном преобразовании типов.
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $db | yii\mongodb\Connection | Подключение к MongoDB. | yii\mongodb\QueryBuilder |
Публичные методы
| Метод | Описание | Определено |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\mongodb\QueryBuilder |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| aggregate() | Генерирует команду 'aggregate'. | yii\mongodb\QueryBuilder |
| buildAndCondition() | Соединяет два или более условия с оператором AND. | yii\mongodb\QueryBuilder |
| buildBetweenCondition() | Создаёт условие Mongo, которое эмулирует оператор BETWEEN. | yii\mongodb\QueryBuilder |
| buildCondition() | Парсит условие и генерирует соответствующее условие Mongo. | yii\mongodb\QueryBuilder |
| buildHashCondition() | Создаёт условие на основе пар столбец-значение. | yii\mongodb\QueryBuilder |
| buildInCondition() | Создаёт условие Mongo с оператором IN. | yii\mongodb\QueryBuilder |
| buildLikeCondition() | Создаёт условие Mongo, которое эмулирует оператор LIKE. | yii\mongodb\QueryBuilder |
| buildNotCondition() | Создаёт условие NOT. | yii\mongodb\QueryBuilder |
| buildOrCondition() | Соединяет два или более условия с оператором OR. | yii\mongodb\QueryBuilder |
| buildRegexCondition() | Создаёт условие Mongo с регулярным выражением. | yii\mongodb\QueryBuilder |
| buildSelectFields() | Нормализует список полей для составления запроса MongoDB select. | yii\mongodb\QueryBuilder |
| buildSimpleCondition() | Создаёт условие Mongo, подобное {$operator:{field:value}}. | yii\mongodb\QueryBuilder |
| buildSortFields() | Нормализует список полей для составления запроса MongoDB sort. | yii\mongodb\QueryBuilder |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| count() | Генерирует команду count. | yii\mongodb\QueryBuilder |
| createCollection() | Генерирует команду 'создать коллекцию'. | yii\mongodb\QueryBuilder |
| createIndexes() | Генерирует команду создания индексов. | yii\mongodb\QueryBuilder |
| distinct() | Генерирует команду 'distinct'. | yii\mongodb\QueryBuilder |
| dropCollection() | Генерирует команду удаления коллекции. | yii\mongodb\QueryBuilder |
| dropDatabase() | Генерирует команду удаления базы данных. | yii\mongodb\QueryBuilder |
| dropIndexes() | Генерирует команду удаления индексов. | yii\mongodb\QueryBuilder |
| explain() | Генерирует команду 'explain'. | yii\mongodb\QueryBuilder |
| findAndModify() | Генерирует команду 'find and modify'. | yii\mongodb\QueryBuilder |
| group() | yii\mongodb\QueryBuilder | |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| listCollections() | Генерирует команду 'listCollections'. | yii\mongodb\QueryBuilder |
| listDatabases() | Генерирует команду 'listDatabases'. | yii\mongodb\QueryBuilder |
| listIndexes() | Генерирует команду получения списка индексов. | yii\mongodb\QueryBuilder |
| mapReduce() | Генерирует команду 'map-reduce'. | yii\mongodb\QueryBuilder |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| ensureMongoId() | Преобразует заданное значение в экземпляр \MongoDB\BSON\ObjectID. | yii\mongodb\QueryBuilder |
| normalizeConditionKeyword() | Преобразует быстрое ключевое слово условия "\yii\db*" в фактическое ключевое слово условия Mongo. | yii\mongodb\QueryBuilder |
Подробное описание свойств
$db общедоступное свойство
Подключение к MongoDB.
public yii\mongodb\Connection $db = null
Подробное описание методов
__construct() public method
Конструктор.
| public void __construct ( $connection, $config = [] ) | ||
|---|---|---|
| $connection | yii\mongodb\Connection |
Подключение к базе данных. |
| $config | array |
Именные пары значений, которые будут использоваться для инициализации свойств объекта |
aggregate() public method
Генерирует команду 'aggregate'.
| public array aggregate ( $collectionName, $pipelines, $options = [] ) | ||
|---|---|---|
| $collectionName | string |
Имя коллекции |
| $pipelines | array |
Список операторов конвейера. |
| $options | array |
Дополнительные параметры. |
| return | array |
Документ команды. |
buildAndCondition() public method
Соединяет два или более условий с помощью оператора AND.
| public array buildAndCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Оператор, используемый для соединения заданных операндов |
| $operands | array |
Условия Mongo для соединения. |
| return | array |
Сгенерированное условие Mongo. |
buildBetweenCondition() public method
Создает условие Mongo, которое эмулирует оператор BETWEEN.
| public array buildBetweenCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Используемый оператор |
| $operands | array |
Первый операнд - это имя столбца. Второй и третий операнды описывают интервал, в котором должно находиться значение столбца. |
| return | array |
Сгенерированное условие Mongo. |
| throws | yii\base\InvalidParamException |
если указано неверное количество операндов. |
buildCondition() public method
Разбирает спецификацию условия и генерирует соответствующее условие Mongo.
| public array buildCondition ( $condition ) | ||
|---|---|---|
| $condition | array |
Спецификация условия. Пожалуйста, обратитесь к yii\mongodb\Query::where() о том, как указать условие. |
| return | array |
Сгенерированное условие Mongo |
| throws | yii\base\InvalidParamException |
если условие имеет неправильный формат |
buildHashCondition() public method
Создает условие на основе пар столбец-значение.
| public array buildHashCondition ( $condition ) | ||
|---|---|---|
| $condition | array |
Спецификация условия. |
| return | array |
Сгенерированное условие Mongo. |
buildInCondition() public method
Создает условие Mongo с оператором IN.
| public array buildInCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Используемый оператор (например, |
| $operands | array |
Первый операнд - это имя столбца. Если это массив, будет создано составное условие IN. Второй операнд - это массив значений, среди которых должно быть значение столбца. |
| return | array |
Сгенерированное условие Mongo. |
| throws | yii\base\InvalidParamException |
если указано неверное количество операндов. |
buildLikeCondition() public method
Создает условие Mongo, которое эмулирует оператор LIKE.
| public array buildLikeCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Используемый оператор |
| $operands | array |
Первый операнд - это имя столбца. Второй операнд - это единственное значение, с которым должно сравниваться значение столбца. |
| return | array |
Сгенерированное условие Mongo. |
| throws | yii\base\InvalidParamException |
если указано неверное количество операндов. |
buildNotCondition() public method
Создает условие NOT.
| public array buildNotCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Оператор, используемый для соединения заданных операндов |
| $operands | array |
Условия Mongo для соединения. |
| return | array |
Сгенерированное условие Mongo. |
| throws | yii\base\InvalidParamException |
если указано неверное количество операндов. |
buildOrCondition() public method
Соединяет два или более условий с помощью оператора OR.
| public array buildOrCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Оператор, используемый для соединения заданных операндов |
| $operands | array |
Условия Mongo для соединения. |
| return | array |
Сгенерированное условие Mongo. |
buildRegexCondition() public method
Создает условие регулярного выражения Mongo.
| public array buildRegexCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | string |
Используемый оператор |
| $operands | array |
Первый операнд - это имя столбца. Второй операнд - это единственное значение, с которым должно сравниваться значение столбца. |
| return | array |
Сгенерированное условие Mongo. |
| throws | yii\base\InvalidParamException |
если указано неверное количество операндов. |
buildSelectFields() public method
Нормализует список полей для составления выбора MongoDB.
| public array buildSelectFields ( $fields ) | ||
|---|---|---|
| $fields | array|string |
Необработанные поля. |
| return | array |
Нормализованные поля выбора. |
buildSimpleCondition() public method
Создаёт условие Mongo, подобное {$operator:{field:value}}.
| public строка buildSimpleCondition ( $operator, $operands ) | ||
|---|---|---|
| $operator | строка |
Используемый оператор. Помимо обычных операторов MongoDB, здесь можно использовать псевдонимы, такие как |
| $operands | массив |
Первый операнд — имя столбца. Второй операнд — единственное значение, с которым должно сравниваться значение столбца. |
| return | строка |
Сгенерированное условие Mongo. |
| throws | yii\base\InvalidParamException |
если было указано неправильное количество операндов. |
buildSortFields() public method
Нормализует список полей для сортировки в MongoDB.
| public массив buildSortFields ( $fields ) | ||
|---|---|---|
| $fields | массив|строка |
Исходные поля. |
| return | массив |
Нормализованные поля сортировки. |
count() public method
Генерирует команду подсчёта
| public массив count ( $collectionName, $condition = [], $options = [] ) | ||
|---|---|---|
| $collectionName | строка | |
| $condition | массив | |
| $options | массив | |
| return | массив |
Документ команды. |
createCollection() public method
Генерирует команду 'создание коллекции'.
https://docs.mongodb.com/manual/reference/method/db.createCollection/
| public массив createCollection ( $collectionName, массив $options = [] ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции. |
| $options | массив |
Параметры коллекции в формате "имя" => "значение" |
| return | массив |
Документ команды. |
createIndexes() public method
Генерирует команду создания индексов.
См. также https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/.
| public массив createIndexes ( $databaseName, $collectionName, $indexes ) | ||
|---|---|---|
| $databaseName | строка|null |
Имя базы данных. |
| $collectionName | строка |
Имя коллекции. |
| $indexes | массив[] |
Спецификация индексов. Каждая спецификация должна быть массивом в формате: имяОпции => значение. Основные параметры:
См. [[https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#options-for-all-index-types]] для полного списка параметров. |
| return | массив |
Документ команды. |
distinct() public method
Генерирует команду 'distinct'.
| public массив distinct ( $collectionName, $fieldName, $condition = [], $options = [] ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции. |
| $fieldName | строка |
Имя целевого поля. |
| $condition | массив |
Условие фильтра. |
| $options | массив |
Список параметров в формате: имяПараметра => значениеПараметра. |
| return | массив |
Документ команды. |
dropCollection() public method
Генерирует команду удаления коллекции.
https://docs.mongodb.com/manual/reference/method/db.collection.drop/
| public массив dropCollection ( $collectionName ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции для удаления. |
| return | массив |
Документ команды. |
dropDatabase() public method
Генерирует команду удаления базы данных.
https://docs.mongodb.com/manual/reference/method/db.dropDatabase/
| public массив dropDatabase ( ) | ||
|---|---|---|
| return | массив |
Документ команды. |
dropIndexes() public method
Генерирует команду удаления индексов.
| public массив dropIndexes ( $collectionName, $index ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции |
| $index | строка |
Имя индекса или шаблон, используйте |
| return | массив |
Документ команды. |
ensureMongoId() protected method
Преобразует заданное значение в экземпляр \MongoDB\BSON\ObjectID.
Если задан массив, каждый его элемент будет обработан.
| protected массив|\MongoDB\BSON\ObjectID ensureMongoId ( $rawId ) | ||
|---|---|---|
| $rawId | смешанный тип |
Исходный идентификатор(ы). |
| return | массив|\MongoDB\BSON\ObjectID |
Нормализованный идентификатор(ы). |
explain() public method
Генерирует команду 'explain'.
| public массив explain ( $collectionName, $query ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции. |
| $query | массив |
Параметры запроса. |
| return | массив |
Документ команды. |
findAndModify() public method
Генерирует команду 'find and modify'.
| public массив findAndModify ( $collectionName, $condition = [], $update = [], $options = [] ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции |
| $condition | массив |
Условие фильтрации |
| $update | массив |
Критерии обновления |
| $options | массив |
Список опций в формате: имяОпции => значениеОпции. |
| return | массив |
Документ команды. |
group() public метод
| public void group ( $collectionName, $keys, $initial, $reduce, $options = [] ) | ||
|---|---|---|
| $collectionName | ||
| $keys | ||
| $initial | ||
| $reduce | ||
| $options | ||
listCollections() public метод
Генерирует команду 'listCollections'.
| public массив listCollections ( $condition = [], $options = [] ) | ||
|---|---|---|
| $condition | массив |
Условие фильтрации. |
| $options | массив |
Опции команды. |
| return | массив |
Документ команды. |
listDatabases() public метод
Генерирует команду 'listDatabases'.
| public массив listDatabases ( $condition = [], $options = [] ) | ||
|---|---|---|
| $condition | массив |
Условие фильтрации. |
| $options | массив |
Опции команды. |
| return | массив |
Документ команды. |
listIndexes() public метод
Генерирует команду списка индексов.
| public массив listIndexes ( $collectionName, $options = [] ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции |
| $options | массив |
Опции команды. Доступные опции:
|
| return | массив |
Документ команды. |
mapReduce() public метод
Генерирует команду 'map-reduce'.
См. также https://docs.mongodb.com/manual/core/map-reduce/.
| public массив mapReduce ( $collectionName, $map, $reduce, $out, $condition = [], $options = [] ) | ||
|---|---|---|
| $collectionName | строка |
Имя коллекции. |
| $map | \MongoDB\BSON\Javascript|строка |
Функция, которая передает данные map из коллекции. Аргумент будет автоматически преобразован в \MongoDB\BSON\Javascript. |
| $reduce | \MongoDB\BSON\Javascript|строка |
Функция, которая принимает два аргумента (ключ map и значения map) и выполняет агрегацию. Аргумент будет автоматически преобразован в \MongoDB\BSON\Javascript. |
| $out | строка|массив |
Имя выходной коллекции. Может быть строкой для простого вывода ('outputCollection'), или массивом для параметризованного вывода (['merge' => 'outputCollection']). Можно передать ['inline' => true], чтобы получить результат сразу без использования временной коллекции. |
| $condition | массив |
Условие фильтрации для включения документа в агрегацию. |
| $options | массив |
Дополнительные необязательные параметры к команде mapReduce. Допустимые опции включают:
|
| return | массив |
Документ команды. |
normalizeConditionKeyword() защищенный метод
Преобразует "\yii\db*" быстрый ключевой параметр условия в фактический ключевой параметр условия Mongo.
| protected строка normalizeConditionKeyword ( $key ) | ||
|---|---|---|
| $key | строка |
Ключ исходного условия. |
| return | строка |
Фактический ключ. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mongodb-querybuilder.html