2 つのリクエストをスカッシュしたい:
a = r.table('A').run(conn)
b = r.table('B').run(conn)
一つで。何かのようなもの:
out = some_reql({
'a': r.table('A'),
'b': r.table('B')
}).run(conn)
out['a']
out['b']
2 つのリクエストをスカッシュしたい:
a = r.table('A').run(conn)
b = r.table('B').run(conn)
一つで。何かのようなもの:
out = some_reql({
'a': r.table('A'),
'b': r.table('B')
}).run(conn)
out['a']
out['b']
単一のクエリで両方を取得したい場合は、union
そのように行うことができます
r.union(r.table("A"), r.table("B"))
これにより、2 つのストリームを連結した単一のストリーム オブジェクトが返されます。ただし、あるストリームがどこで終了し、次のストリームが開始するかはわかりません。現在、同じクエリで 2 つの個別のストリーム オブジェクトを返す方法はありません。したがって、それらを別々のストリームとして使用できるようにしたい場合は、2 つの別々のクエリを実行する必要があります。あなたにとってうまくいかない理由はありますか?
ストリームが大きい場合、各ストリームの結果を評価するには複数のリクエストが必要になるため、パフォーマンスに大きな影響はありません。ただし、それらが小さい場合は、次のように強制的に配列にすることができます。
{"a" : r.table("A").coerce_to("ARRAY"),
"b" : r.table("B").coerce_to("ARRAY")}
これは、ストリームがメモリに収まる場合にのみ行ってください。