RethinkDB在单个请求中进行多次查询

时间:2013-11-29 22:20:07

标签: ruby rethinkdb rethinkdb-ruby

我正在尝试在单个服务器请求中执行多个RQL命令,但我可能没有太大的成功。我尝试了r.union,但它只适用于序列。我真正想要的是:

[r.db(..).table(..).get(id1).delete(),
 r.db(..).table(..).get(id2).delete(),
 r.db(..).table(..).insert(...)].run_all_at_once

有没有办法做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:11)

您也可以使用do

r.do(
  r.table('test').insert({value1: "Hey"}),
  r.table('test').insert({value2: "Ho"})
).run(conn);
  • 从最后到第一个评估查询
  • 响应将是最后一个查询的结果

答案 1 :(得分:10)

你可以做到

r.expr( [r.db(...).table(...).get(id1).delete(), 
r.db(...).table(...).get(id1).delete(), 
r.db(...).table(...).insert(...) ] ).run(conn)

请注意,删除方法不会产生参数。