问题
I'm trying to execute several RQL commands in a single request to server, without much success I may add. I have tried r.union
, but it only works with sequences. What I really want:
[r.db(..).table(..).get(id1).delete(),
r.db(..).table(..).get(id2).delete(),
r.db(..).table(..).insert(...)].run_all_at_once
Is there any way to do this?
Thanks!
回答1:
You can do
r.expr( [r.db(...).table(...).get(id1).delete(),
r.db(...).table(...).get(id1).delete(),
r.db(...).table(...).insert(...) ] ).run(conn)
Note that the method delete doesn't get an argument.
回答2:
You can also use do
r.do(
r.table('test').insert({value1: "Hey"}),
r.table('test').insert({value2: "Ho"})
).run(conn);
- The queries are evaluated from last to first
- The response will be the last query's result
来源:https://stackoverflow.com/questions/20294097/rethinkdb-multiple-queries-in-a-single-request