我想压缩两个请求:
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']
答案 0 :(得分:1)
如果您希望在单个查询中同时使用union
,请执行此操作
r.union(r.table("A"), r.table("B"))
这将返回一个流对象,它是两个流的串联。但是,您将无法分辨一个流的结束位置和下一个流的开始位置。目前无法在同一查询中返回2个单独的流对象。因此,如果您希望能够将它们用作单独的流,则需要执行2个单独的查询。有什么理由对你不起作用吗?
如果您的流很大,那么这对性能不会产生很大影响,因为评估每个流的结果无论如何都需要多个请求。但是,如果它们很小,那么你可以将它们强制转换为数组:
{"a" : r.table("A").coerce_to("ARRAY"),
"b" : r.table("B").coerce_to("ARRAY")}
只有当您的流适合内存时才能执行此操作。