我有2个孩子和父母的桌子:
child
{id:1, parent_id: 10, name:"blah" ...}
parent
{id:10, name: "parent blah" ....}
我知道子对象的id,并且想要查询与父对象连接的子对象。
有没有办法可以做到相当于:
r.table('child').get(10).eq_join('parent_id', r.table('parent'))
eq_joins可以很好地处理过滤器操作的结果,因为它返回一个序列。我想在使用get
时执行类似的操作所以形式为eq_join:
r.table('child').filter({'id': 1}).eq_join('parent_id', r.table('parent'))
给我记录
{left: {id: 10, parent_id:1, ...},
right: {id:1, ....}}
对序列非常有用。
我想在使用get而不是filter的情况下执行相同的操作。
答案 0 :(得分:1)
你可以做类似的事情(在Python中)
r.table('child').get(10).merge(lambda child:
{
'parent': r.table('parents').get(child['parent_id'])
}
)
如果您想要与eq_join
完全相同的输出,则可以执行
r.expr([r.table('child').get(10)]).eq_join('parent_id', r.table('parent'))