Команда 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'), function(marvelRow, dcRow) {
return marvelRow('strength').lt(dcRow('strength'))
}).run(conn, callback)
(Сравните это со innerJoin с теми же входными данными и предикатом, который вернул бы список только тех противостояний, в которых герой DC имеет большую силу.)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/javascript/outer_join/