Команда ReQL: union
Синтаксис команды
stream.union(sequence[, sequence, ...]) → stream array.union(sequence[, sequence, ...]) → array r.union(stream, sequence[, sequence, ...]) → stream r.union(array, sequence[, sequence, ...]) → array
Описание
Объединение двух или более последовательностей.
interleave optArg управляет способом объединения последовательностей:
-
true: результаты будут смешаны; это самый быстрый вариант, но порядок элементов не гарантируется. (Это значение по умолчанию.) -
false: последовательности будут добавлены друг за другом, слева направо. -
"field_name": строка будет использована в качестве имени поля для выполнения слияния с сортировкой. Входные последовательности должны быть отсортированы до передачи вunion. - function:
interleaveoptArg может принимать функцию, аргументом которой является текущая строка, а возвращаемое значение — значение для выполнения слияния с сортировкой.
Пример: Создание потока всех героев.
r.table("marvel").union(r.table("dc")).run(conn);
Пример: Объединение четырех массивов в один.
r.expr(r.array(1, 2)).union(r.array(3, 4), r.array(5, 6), r.array(7, 8, 9)).run(conn);
// Result:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Пример: Создание changefeed из первого примера.
r.table("marvel").union(r.table("dc")).changes().run(conn);
Теперь, когда герои добавляются, изменяются или удаляются из любой таблицы, будет отправлено уведомление об изменении.
Пример: Слияние таблиц героев с сортировкой по имени.
r.table("marvel").orderBy("name")
.union(r.table("dc").orderBy("name")).optArg("interleave", "name")
.run(conn);
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/java/union/