short answer:
r.expr([id1, id2, id3]).eqJoin(function(doc) { return doc; }, r.table("person"))
Longer answer:
There are a couple of ways to do this. The above is what I'd call the canonical way. Let's breakdown what's happening:
First with r.expr([id1, id2, id3])
we're packaging up the array to send it over to the server.
Then we call eqJoin
what it does is take a stream of values and dispatch and indexed get
for each one. The function(doc) { return doc; }
is a slightly ugly hack because eqJoin
requires a mapping function.
So in the end the above code becomes equivalent to:
[r.table("person").get(id1), r.table("person").get(id2), r.table("person).get(id3)]