Класс yii\mongodb\ActiveQuery
| Наследование | yii\mongodb\ActiveQuery » yii\mongodb\Query » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\db\ActiveQueryInterface, yii\db\QueryInterface |
| Использует трейты | yii\db\ActiveQueryTrait, yii\db\ActiveRelationTrait, yii\db\QueryTrait |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-mongodb/blob/master/ActiveQuery.php |
ActiveQuery представляет запрос к MongoDB, связанный с классом Active Record.
Объект ActiveQuery может быть обычным запросом или использоваться в контексте отношений.
Экземпляры ActiveQuery обычно создаются с помощью yii\mongodb\ActiveRecord::find(). Связанные запросы создаются с помощью yii\mongodb\ActiveRecord::hasOne() и yii\mongodb\ActiveRecord::hasMany().
Обычный запрос
Экземпляры ActiveQuery обычно создаются с помощью yii\mongodb\ActiveRecord::find().
Поскольку ActiveQuery расширяет yii\mongodb\Query, можно использовать методы запроса, такие как where(), orderBy() для настройки параметров запроса.
ActiveQuery также предоставляет следующие дополнительные параметры запроса:
- with(): список отношений, с которыми должен выполняться этот запрос.
- asArray(): следует ли возвращать каждый документ как массив.
Эти параметры можно настроить с помощью методов с таким же именем. Например:
$customers = Customer::find()->with('orders')->asArray()->all();
Связанный запрос
В контексте отношений ActiveQuery представляет отношение между двумя классами Active Record.
Экземпляры связанных ActiveQuery обычно создаются при вызове yii\mongodb\ActiveRecord::hasOne() и yii\mongodb\ActiveRecord::hasMany(). Класс Active Record объявляет отношение, определив метод-геттер, который вызывает один из вышеперечисленных методов и возвращает созданный объект ActiveQuery.
Отношение задается параметром $link, который представляет ассоциацию между столбцами разных коллекций; а кратность отношения указана параметром $multiple.
Если отношение включает коллекцию соединения, она может быть задана методом via(). Этот метод может быть вызван только в контексте отношений. То же самое верно для inverseOf(), который отмечает отношение как обратное другому отношению.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $asArray | boolean | Возвращать ли каждый документ как массив. | yii\db\ActiveQueryTrait |
| $behaviors | yii\base\Behavior[] | Список присоединенных к этому компоненту поведений | yii\base\Component |
| $collection | yii\mongodb\Collection | Экземпляр коллекции. | yii\mongodb\ActiveQuery |
| $emulateExecution | boolean | Эмулировать ли фактическое выполнение запроса, возвращая пустые или ложные результаты. | yii\db\QueryTrait |
| $from | string|array | Коллекция, из которой нужно выбрать данные. | yii\mongodb\Query |
| $indexBy | string|callable | Имя столбца, по которому должны быть индексированы результаты запроса. | yii\db\QueryTrait |
| $inverseOf | string | Имя отношения, являющегося обратным этому отношению. | yii\db\ActiveRelationTrait |
| $limit | integer|yii\db\Expression | Максимальное количество возвращаемых документов. | yii\db\QueryTrait |
| $link | array | Столбцы основной и внешней таблиц, которые устанавливают отношение. | yii\db\ActiveRelationTrait |
| $modelClass | string | Имя класса ActiveRecord. | yii\db\ActiveQueryTrait |
| $multiple | boolean | Представляет ли этот запрос отношение к более чем одному документу. | yii\db\ActiveRelationTrait |
| $offset | integer|yii\db\Expression | Смещение от нуля, от которого должны быть возвращены документы. | yii\db\QueryTrait |
| $options | array | Параметры курсора в формате: optionKey => optionValue | yii\mongodb\Query |
| $orderBy | array | Как отсортировать результаты запроса. | yii\db\QueryTrait |
| $primaryModel | yii\db\ActiveRecord | Основной экземпляр модели связанного запроса. | yii\db\ActiveRelationTrait |
| $select | array | Поля результатов, которые нужно вернуть. | yii\mongodb\Query |
| $via | array|object | Запрос, связанный с таблицей соединения. | yii\db\ActiveRelationTrait |
| $where | string|array | Условие запроса. | yii\db\QueryTrait |
| $with | array | Список отношений, с которыми должен выполняться этот запрос. | yii\db\ActiveQueryTrait |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Клонирует внутренние объекты. | yii\db\ActiveRelationTrait |
| __construct() | Конструктор. | yii\mongodb\ActiveQuery |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в null. | yii\base\Component |
| addOptions() | Добавляет дополнительные опции курсора. | yii\mongodb\Query |
| addOrderBy() | Добавляет дополнительные столбцы ORDER BY в запрос. | yii\db\QueryTrait |
| all() | Выполняет запрос и возвращает все результаты в виде массива. | yii\mongodb\ActiveQuery |
| andFilterCompare() | Вспомогательный метод для удобного запроса значений, содержащих некоторые общие операторы. | yii\mongodb\Query |
| andFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| andWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| asArray() | Устанавливает свойство asArray(). | yii\db\ActiveQueryTrait |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| average() | Возвращает среднее значение указанных значений столбца. | yii\mongodb\Query |
| batch() | Инициализирует пакетный запрос. | yii\mongodb\Query |
| behaviors() | Возвращает список поведений, по которым этот компонент должен вести себя. | yii\base\Component |
| buildCursor() | Создает MongoDB курсор для этого запроса. | yii\mongodb\Query |
| canGetProperty() | Возвращает значение, указывающее, может ли свойство быть прочитано. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, может ли свойство быть установлено. | yii\base\Component |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| column() | Выполняет запрос и возвращает первый столбец результата. | yii\mongodb\Query |
| count() | Возвращает количество записей. | yii\mongodb\Query |
| detachBehavior() | Открепляет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Открепляет все поведения от компонента. | yii\base\Component |
| distinct() | Возвращает список уникальных значений для указанного столбца во всей коллекции. | yii\mongodb\Query |
| each() | Инициализирует пакетный запрос и извлекает данные строка за строкой. | yii\mongodb\Query |
| emulateExecution() | Устанавливает, нужно ли эмулировать выполнение запроса, предотвращая взаимодействие с хранилищем данных. | yii\db\QueryTrait |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| exists() | Возвращает значение, указывающее, содержит ли результат запроса какую-либо строку данных. | yii\mongodb\Query |
| filterWhere() | Устанавливает часть WHERE запроса, но игнорирует пустые операнды. | yii\db\QueryTrait |
| findFor() | Находит связанные записи для указанной основной записи. | yii\db\ActiveRelationTrait |
| findWith() | Находит записи, соответствующие одному или нескольким отношениям, и заполняет их в основные модели. | yii\db\ActiveQueryTrait |
| from() | Устанавливает коллекцию, из которой следует выбрать. | yii\mongodb\Query |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединенные к этому компоненту поведения. | yii\base\Component |
| getCollection() | Возвращает Mongo коллекцию для этого запроса. | yii\mongodb\ActiveQuery |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединенный к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| indexBy() | Устанавливает свойство indexBy(). | yii\db\QueryTrait |
| init() | Инициализирует объект. | yii\mongodb\ActiveQuery |
| inverseOf() | Устанавливает имя отношения, которое является обратным для этого отношения. | yii\db\ActiveRelationTrait |
| limit() | Устанавливает часть LIMIT запроса. | yii\db\QueryTrait |
| max() | Возвращает максимальное значение указанных значений столбца. | yii\mongodb\Query |
| min() | Возвращает минимальное значение указанных значений столбца. | yii\mongodb\Query |
| modify() | Выполняет запрос 'findAndModify' и возвращает одну строку результата. | yii\mongodb\ActiveQuery |
| off() | Открепляет существующий обработчик событий от этого компонента. | yii\base\Component |
| offset() | Устанавливает часть OFFSET запроса. | yii\db\QueryTrait |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| one() | Выполняет запрос и возвращает единственную строку результата. | yii\mongodb\ActiveQuery |
| options() | Устанавливает параметры курсора. | yii\mongodb\Query |
| orFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| orWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| orderBy() | Устанавливает часть ORDER BY запроса. | yii\db\QueryTrait |
| populate() | Преобразует сырые результаты запроса в формат, указанный этим запросом. | yii\mongodb\ActiveQuery |
| populateRelation() | Ищет связанные записи и заполняет их в основные модели. | yii\db\ActiveRelationTrait |
| prepare() | Готовится к построению запроса. | yii\mongodb\ActiveQuery |
| scalar() | Возвращает результат запроса как скалярное значение. | yii\mongodb\Query |
| select() | Устанавливает список полей результатов, которые нужно вернуть. | yii\mongodb\Query |
| sum() | Возвращает сумму значений указанного столбца. | yii\mongodb\Query |
| trigger() | Вызывает событие. | yii\base\Component |
| via() | Указывает отношение, связанное с таблицей соединения. | yii\db\ActiveRelationTrait |
| where() | Устанавливает часть WHERE запроса. | yii\db\QueryTrait |
| with() | Указывает отношения, с которыми должен быть выполнен этот запрос. | yii\db\ActiveQueryTrait |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| aggregate() | Выполняет агрегацию для заданного столбца. | yii\mongodb\Query |
| createModels() | Преобразует найденные строки в экземпляры моделей. | yii\db\ActiveQueryTrait |
| fetchRows() | Извлекает строки из заданного курсора Mongo. | yii\mongodb\Query |
| fetchRowsInternal() | yii\mongodb\Query | |
| filterCondition() | Удаляет пустые операнды из данного условия запроса. | yii\db\QueryTrait |
| isEmpty() | Возвращает значение, указывающее, является ли данное значение "пустым". | yii\db\QueryTrait |
| normalizeOrderBy() | Нормализует формат данных ORDER BY. | yii\db\QueryTrait |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_INIT | \yii\mongodb\Event | Событие, которое срабатывает при инициализации запроса через init(). | yii\mongodb\ActiveQuery |
Подробности свойств
$collection общедоступное только для чтения свойство
Экземпляр коллекции.
public yii\mongodb\Collection getCollection ( $db = null )
Подробности методов
__construct() public method
Конструктор.
| public void __construct ( $modelClass, $config = [] ) | ||
|---|---|---|
| $modelClass | массив |
Класс модели, связанной с этим запросом |
| $config | массив |
Настройки, которые будут применены к вновь созданному объекту запроса |
all() public method
Выполняет запрос и возвращает все результаты в виде массива.
| public массив|yii\mongodb\ActiveRecord all ( $db = null ) | ||
|---|---|---|
| $db | yii\mongodb\Connection |
Подключение к MongoDB, используемое для выполнения запроса. Если null, используется подключение к MongoDB, возвращаемое $modelClass. |
| return | массив|yii\mongodb\ActiveRecord |
Результаты запроса. Если запрос не возвращает результатов, возвращается пустой массив. |
getCollection() public method
Возвращает коллекцию MongoDB для этого запроса.
| public yii\mongodb\Collection getCollection ( $db = null ) | ||
|---|---|---|
| $db | yii\mongodb\Connection |
Подключение к MongoDB. |
| return | yii\mongodb\Collection |
Экземпляр коллекции. |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора. Стандартная реализация вызовет событие EVENT_INIT. Если вы переопределяете этот метод, убедитесь, что вы вызываете родительскую реализацию в конце, чтобы гарантировать срабатывание события.
| public void init ( ) |
|---|
modify() public method
Выполняет запрос 'findAndModify' и возвращает одну строку результатов.
Предупреждение: в случае, если параметр 'new' установлен в 'false' (по умолчанию), использование этого метода может привести к непредсказуемому поведению некоторых функций Active Record, потому что объект будет заполнен устаревшими данными.
| public yii\mongodb\ActiveRecord|массив|null modify ( $update, $options = [], $db = null ) | ||
|---|---|---|
| $update | массив |
Критерии обновления |
| $options | массив |
Список параметров в формате: имяПараметра => значениеПараметра. |
| $db | yii\mongodb\Connection |
Подключение к MongoDB, используемое для выполнения запроса. |
| return | yii\mongodb\ActiveRecord|массив|null |
Исходный документ или измененный документ, если $options['new'] установлен. В зависимости от настройки asArray(), результат запроса может быть либо массивом, либо объектом ActiveRecord. Будет возвращено null, если запрос не возвращает результатов. |
one() public method
Выполняет запрос и возвращает одну строку результата.
| public yii\mongodb\ActiveRecord|массив|null one ( $db = null ) | ||
|---|---|---|
| $db | yii\mongodb\Connection |
Подключение к MongoDB, используемое для выполнения запроса. Если null, используется подключение к MongoDB, возвращаемое $modelClass. |
| return | yii\mongodb\ActiveRecord|массив|null |
Одна строка результата запроса. В зависимости от настройки asArray(), результат запроса может быть либо массивом, либо объектом ActiveRecord. Будет возвращено null, если запрос не возвращает результатов. |
populate() public method
Преобразует сырые результаты запроса в формат, указанный этим запросом.
Этот метод используется внутри для преобразования данных, полученных из MongoDB, в формат, необходимый этому запросу.
| public массив populate ( $rows ) | ||
|---|---|---|
| $rows | массив |
Сырой результат запроса из MongoDB |
| return | массив |
Преобразованный результат запроса |
prepare() public method
Подготавливает выполнение запроса.
Этот метод вызывается перед фактическим составлением запроса, например, построением курсора, подсчёта и т.д. Вы можете переопределить этот метод, чтобы выполнить некоторые заключительные подготовительные действия перед выполнением запроса.
| public $this prepare ( ) | ||
|---|---|---|
| return | $this |
Подготовленный объект запроса. |
Подробное описание событий
EVENT_INIT событие типа \yii\mongodb\Event
Событие, которое срабатывает при инициализации запроса с помощью init().
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mongodb-activequery.html