Команда ReQL: distinct
Синтаксис команды
sequence.distinct() → array table.distinct([index=<indexname>]) → stream r.distinct(sequence) → array r.distinct(table, [index=<indexname>]) → stream
Описание
Удаляет дублирующиеся элементы из последовательности.
Команда distinct может быть вызвана для любой последовательности или таблицы с индексом.
Хотя
distinctможет быть вызвана для таблицы без индекса, единственным результатом будет преобразование таблицы в поток; содержимое потока не изменится.
Пример: Какие уникальные злодеи были повержены героями Marvel?
r.table('marvel').concat_map(
lambda hero: hero['villain_list']).distinct().run(conn)
Пример: Тематика в таблице сообщений имеет вторичный индекс, и более чем одно сообщение может иметь одинаковую тематику. Какие уникальные темы находятся в таблице?
r.table('messages').distinct(index='topics').run(conn)
Вышеприведенная структура функционально идентична:
r.table('messages')['topics'].distinct().run(conn)
Однако, первый вариант (передача индекса в качестве аргумента к distinct) быстрее и не столкнётся с проблемами ограничения массива, так как возвращает поток.
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/distinct/