CollectionFind::sort
(No version information available, might only be in Git)
CollectionFind::sort — Устанавливает критерии сортировки
Описание
Сортирует набор результатов по полю, выбранному в аргументе sort_expr. Разрешенные направления: ASC (по возрастанию) или DESC (по убыванию). Операция эквивалентна операции SQL 'ORDER BY' и соответствует тому же набору правил.
Список параметров
-
sort_expr
-
Можно указать одно или несколько выражений сортировки, Применяется слева направо, каждое выражение должно быть разделено запятой.
Возвращаемые значения
Объект CollectionFind, который можно использовать для выполнения команды или для добавления дополнительных операций.
Примеры
Пример #1 Пример использования mysql_xdevapi\CollectionFind::sort()
<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();
// ...
$collection = $schema->getCollection("people");
$result = $collection
->find()
->sort('job desc', 'age asc')
->execute();
var_dump($result->fetchAll());
?>
Результатом выполнения данного примера будет что-то подобное:
array(2) { [0]=> array(4) { ["_id"]=> string(28) "00005b6b53610000000000000106" ["age"]=> int(18) ["job"]=> string(6) "Butler" ["name"]=> string(6) "Alfred" } [1]=> array(4) { ["_id"]=> string(28) "00005b6b53610000000000000107" ["age"]=> int(42) ["job"]=> string(6) "Butler" ["name"]=> string(8) "Reginald" } }