union
ReQL command: union
Command syntax
stream.union(sequence[, sequence, ...]) → stream array.union(sequence[, sequence, ...]) → array r.union(stream, sequence[, sequence, ...]) → stream r.union(array, sequence[, sequence, ...]) → array
Description
Merge two or more sequences.
The interleave
optArg controls how the sequences will be merged:
-
true
: results will be mixed together; this is the fastest setting, but ordering of elements is not guaranteed. (This is the default.) -
false
: input sequences will be appended to one another, left to right. -
"field_name"
: a string will be taken as the name of a field to perform a merge-sort on. The input sequences must be ordered before being passed tounion
. - function: the
interleave
optArg can take a function whose argument is the current row, and whose return value is a string to take as a field name, as with the"field_name"
setting described above.
Example: Construct a stream of all heroes.
r.table("marvel").union(r.table("dc")).run(conn);
Example: Combine four arrays into one.
r.expr(r.array(1, 2)).union(r.array(3, 4), r.array(5, 6), r.array(7, 8, 9)).run(conn); // Result: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Example: Create a changefeed from the first example.
r.table("marvel").union(r.table("dc")).changes().run(conn);
Now, when any heroes are added, modified or deleted from either table, a change notification will be sent out.
Example: Merge-sort the tables of heroes, ordered by name.
r.table("marvel").orderBy("name") .union(r.table("dc").orderBy("name")).optArg("interleave", "name") .run(conn);
Get more help
Couldn't find what you were looking for?
- Ask a question on Stack Overflow
- Chat with us and our community on Slack
- Talk to the team on IRC on #rethinkdb@freenode.net — via Webchat
- Ping @rethinkdb on Twitter
- Post an issue on the documentation issue tracker on GitHub
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/java/union/