Команда ReQL: outer_join
Синтаксис команды
sequence.outer_join(other_sequence, predicate_function) → stream array.outer_join(other_sequence, predicate_function) → array
Описание
Возвращает левое внешнее соединение двух последовательностей. Возвращаемая последовательность представляет собой объединение левой и правой последовательностей: все документы в левой последовательности будут возвращены, каждый из них сопоставлен с документом в правой последовательности, если он удовлетворяет условию предиката. В большинстве случаев вам потребуется выполнить соединение с помощью zip для объединения левых и правых результатов.
Обратите внимание, что
outer_joinмедленнее и гораздо менее эффективно, чем использование concat_map с get_all. Следует избегать использованияouter_joinв командах, когда это возможно.
Пример: Возвращает список всех героев Marvel, сопоставленных с любыми героями DC, которые могли бы их победить в бою.
r.table('marvel').outer_join(r.table('dc')) {|marvel_row, dc_row|
marvel_row[:strength] < dc_row[:strength]
}.run(conn)
(Сравните это с inner_join с теми же входными данными и предикатом, который вернет список только тех сопоставлений, в которых герой DC обладает большей силой.)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/ruby/outer_join/