Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RethinkDB multiple queries in a single request

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!

like image 438
PJK Avatar asked Nov 29 '13 22:11

PJK


2 Answers

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
like image 180
Jens Avatar answered Oct 17 '22 07:10

Jens


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.

like image 10
neumino Avatar answered Oct 17 '22 07:10

neumino