Команда ReQL: outerJoin
Синтаксис команды
sequence.outerJoin(otherSequence, predicate_function) → stream array.outerJoin(otherSequence, predicate_function) → array
Описание
Возвращает левое внешнее соединение двух последовательностей. Возвращаемая последовательность представляет собой объединение левой и правой последовательностей: все документы в левой последовательности будут возвращены, каждый сопоставленный с документом в правой последовательности, если он удовлетворяет условию предиката. В большинстве случаев вы захотите последовать за соединением zip для объединения левых и правых результатов.
Обратите внимание, что
outerJoinмедленнее и значительно менее эффективен, чем использование concatMap с getAll. Следует избегать использованияouterJoinв командах, когда это возможно.
Пример: Вернуть список всех героев Marvel, сопоставленных с любыми героями DC, которые могли бы победить их в бою.
r.table("marvel").outerJoin(r.table("dc"),
(marvel_row, dc_row) -> marvel_row.g("strength").lt(dc_row.g("strength"))
).zip().run(conn);
(Сравните это с innerJoin с теми же входными данными и предикатом, который вернул бы список только тех сопоставлений, в которых герой DC имеет более высокую силу.)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/java/outer_join/