Spec-Zone.ru › RethinkDB ruby

Команда 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]

Пример: Создать изменение из первого примера.

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/ruby/union/

Spec-Zone.ru

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