Spec-Zone.ru › RethinkDB python

Команда ReQL: max

Синтаксис команды

sequence.max(field | function) → element
sequence.max(index=<indexname>) → element
r.max(sequence, field | function) → element
r.max(sequence, index=<indexname>) → element

Описание

Находит максимальный элемент последовательности.

Команда max может быть вызвана с:

  • именем поля, чтобы вернуть элемент последовательности с наибольшим значением в этом поле;
  • индексом (первичный ключ или вторичный индекс), чтобы вернуть элемент последовательности с наибольшим значением в этом индексе;
  • функцией, чтобы применить функцию к каждому элементу последовательности и вернуть элемент, который возвращает наибольшее значение из функции, игнорируя любые элементы, где функция вызывает ошибку несуществования.

Для получения более подробной информации о порядке сортировки RethinkDB, см. раздел в типах данных ReQL.

Вызов max над пустой последовательностью вызовет ошибку несуществования; это можно обработать с помощью команды default.

Пример: Вернуть максимальное значение в списке [3, 5, 7].

r.expr([3, 5, 7]).max().run(conn)

Пример: Вернуть пользователя с наибольшим количеством очков.

r.table('users').max('points').run(conn)

Пример: То же самое, но с использованием вторичного индекса по полю points.

r.table('users').max(index='points').run(conn)

Пример: Вернуть пользователя с наибольшим количеством очков, добавив бонусные очки из отдельного поля с помощью функции.

r.table('users').max(lambda user:
    user['points'] + user['bonus_points']
).run(conn)

Пример: Вернуть наибольшее количество очков, набранных любым пользователем. Это возвращает значение поля points, а не документ.

r.table('users').max('points')['points'].run(conn)

Пример: Вернуть пользователя с наибольшим количеством очков, но добавить значение возврата по умолчанию None для предотвращения ошибки, если ни один пользователь не набирал очков.

r.table('users').max('points').default(None).run(conn)

Связанные команды

  • map
  • reduce
  • count
  • sum
  • avg
  • min
  • group

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/max/

Spec-Zone.ru

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