Spec-Zone.ru › Yii 2.0

Класс 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

Используемый оператор (например, IN или NOT IN)

$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 массив[]

Спецификация индексов. Каждая спецификация должна быть массивом в формате: имяОпции => значение. Основные параметры:

  • keys: массив, имена столбцов с порядком сортировки, которые будут индексированы. Этот параметр обязателен.
  • unique: логическое значение, указывает на создание уникального индекса.
  • name: строка, имя индекса, если не задано, оно будет сгенерировано автоматически.
  • background: логическое значение, указывает на создание индекса в фоновом режиме.
  • sparse: логическое значение, указывает, что индекс должен ссылаться только на документы с указанным полем.

См. [[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 массив

Опции команды. Доступные опции:

  • maxTimeMS: целое число, максимальное время выполнения в мс.
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. Допустимые опции включают:

  • sort: массив, ключ для сортировки входных документов. Ключ сортировки должен находиться в существующем индексе для этой коллекции.
  • limit: целое число, максимальное количество документов для возврата в коллекции.
  • finalize: \MongoDB\BSON\Javascript|строка, функция, которая следует за методом reduce и изменяет вывод.
  • scope: массив, определяет глобальные переменные, которые доступны в функциях map, reduce и finalize.
  • jsMode: логическое значение, указывает, нужно ли преобразовывать промежуточные данные в формат BSON между выполнением функций map и reduce.
  • verbose: логическое значение, указывает, нужно ли включать информацию о времени выполнения в результирующую информацию.
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API