rethinkdb に次のようなテーブル (ツリー構造を実装) があります。
id label parent
1 Node 1
2 Node 2 1
3 Node 3 1
4 Node 4 2
次の出力が得られるクエリを作成したいと思います。
id label parent
1 Node 1
2 Node 2 Node 1
3 Node 3 Node 1
4 Node 4 Node 2
このために、私は次のように書いています。
r.db("exampleDB").table("exampleTable").eqJoin("parent", r.db("exampleDB").table("exampleTable")).merge(function(val) {
return {
"left": {
"parent": val("right")("label")
}
}
}).without({
"right": true
}).zip()
このクエリは、ルート ノードである行を除くすべての行を返します。また、非常に複雑なシナリオでもこれを行う必要がある可能性があるため、これが最も効率的な方法であるかどうかを知りたいです。