1

RethinkDB データベースの複数のテーブルにデータを挿入または削除する API をテストしています。API の使用中にデータベースに何が起こっているかを監視するために、すべてのテーブルの変更を出力したいと考えています。

ここに私が達成しようとしているもののいくつかの「疑似コード」があります:

import rethinkdb as r

# Prior to running this script, run "rethinkdb --port-offset 1" at the command line
conn = r.connect('localhost', 28016)
if 'test' in r.db_list().run(conn):
    r.db_drop('test').run(conn)
r.db_create('test').run(conn)

r.table_create('table1').run(conn)
r.table_create('table2').run(conn)

feed = r.table('table1' and 'table2').changes().run(conn)
for document in feed:
    print document

このスクリプトを実行する前に、実行rethinkdb --port-offset 1して RethinkDB データベースを初期化します。

table1このスクリプトが実行されたら、 または のいずれかにデータを挿入しtable2(たとえば、 の Web UI を使用してlocalhost:8081)、スクリプトを実行しているターミナルに表示される変更を確認したいと思います。ただし、r.table('table1' and 'table2')有効な ReQL クエリではない可能性があるため、これは機能しないようです。

両方のテーブルの変更を監視するにはどうすればよいですか?

4

2 に答える 2

6

を使用して、単一のクエリで複数の変更フィードをたどることができますr.union

r.union(
  r.table('table1').changes(),
  r.table('table2').changes()
).run(conn)
于 2017-01-10T18:18:07.783 に答える