RethinkDB 插入关系数据
RethinkDB insert data with relationship
我有一个 table A 和一个 table B。
Table B 与 A 有关系,键为 a_id
。
我已经在 table A 中创建了文档。
我想知道如何使用带有外键 A.
的 table B 中的文档在单个查询中插入数据
r.db('DB').table('B').insert([{
'b_data': ...,
'a_id': r.db('DB').table('a').filter(r.row['name'] == 'some_name')
} for p in a]).run(conn)
你走在了正确的轨道上,但ReQL与SQL的逻辑不同,它通常更像一个流程。所以你的查询需要从数据源开始,这样它才能流入插入部分。所以这是我认为你想要的版本(Python 格式):
r.db('DB').table('a').filter({'name':'some_name}).for_each(
r.db('DB').table('b').insert(
{'name':r.row['name'],'b_data':'something'}
)
).run(conn)
我有一个 table A 和一个 table B。
Table B 与 A 有关系,键为 a_id
。
我已经在 table A 中创建了文档。 我想知道如何使用带有外键 A.
的 table B 中的文档在单个查询中插入数据r.db('DB').table('B').insert([{
'b_data': ...,
'a_id': r.db('DB').table('a').filter(r.row['name'] == 'some_name')
} for p in a]).run(conn)
你走在了正确的轨道上,但ReQL与SQL的逻辑不同,它通常更像一个流程。所以你的查询需要从数据源开始,这样它才能流入插入部分。所以这是我认为你想要的版本(Python 格式):
r.db('DB').table('a').filter({'name':'some_name}).for_each(
r.db('DB').table('b').insert(
{'name':r.row['name'],'b_data':'something'}
)
).run(conn)