Команда ReQL: min
Синтаксис команды
sequence.min([field | function]) → element r.min(sequence, [field | function]) → element
Описание
Находит минимальный элемент в последовательности.
Команда min может быть вызвана с:
- именем поля, чтобы вернуть элемент последовательности с наименьшим значением в этом поле;
- функцией, чтобы применить функцию к каждому элементу в последовательности и вернуть элемент, который возвращает наименьшее значение из функции, игнорируя элементы, где функция возвращает ошибку несоответствия;
- индексом (первичный ключ или вторичный индекс) через optArg, чтобы вернуть элемент последовательности с наименьшим значением в этом индексе.
Для получения дополнительной информации о порядке сортировки RethinkDB, прочитайте раздел в типах данных ReQL.
Вызов min над пустой последовательностью приведет к ошибке несоответствия; это можно обработать с помощью команды default_.
Пример: Вернуть минимальное значение в списке [3, 5, 7].
r.expr(r.array(3, 5, 7)).min().run(conn);
Пример: Вернуть пользователя с наименьшим количеством очков.
r.table("users").min("points").run(conn);
Пример: То же самое, но с использованием вторичного индекса по полю points.
r.table("users").min().optArg("index", "points").run(conn);
Пример: Вернуть пользователя с наименьшим количеством очков, добавив бонусные очки из отдельного поля с помощью функции.
r.table("users").min(
user -> user.g("points").add(user.g("bonus_points"))
).run(conn);
Пример: Вернуть наименьшее количество очков, набранных любым пользователем. Это возвращает значение поля points, а не документ.
r.table("users").min("points").g("points").run(conn);
Пример: Вернуть пользователя с наименьшим количеством очков, но добавить значение по умолчанию None для возврата, чтобы предотвратить ошибку, если ни один пользователь не набрал очков.
r.table("users").min("points").default_(null).run(conn);
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/java/min/