1

私は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 を使用する場合でも、同じ操作を実行したいと考えています。

4

1 に答える 1

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'))
于 2014-05-22T06:49:41.173 に答える