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