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