1

与えられた頂点に対して、その頂点に両方のエッジ タイプが存在する場合にのみ、2 つの異なるタイプ (つまりラベル) のすべてのアウト エッジを取得するにはどうすればよいでしょうか??

例えば、

g = TinkerGraphFactory.createTinkerGraph(); 

私は、ソフトウェアを作成したすべての人、および誰かを知っている人を知りたいです。はっきり言って使えない

g.V.out('created', 'knows')

なぜなら、それは何かを作成したか、誰かを知っているすべての人に与えるからです。

4

1 に答える 1

2

私はこの方法でこれを解決しようとはしませんでしたが、ここでは and() ステップを使用するとうまくいくようです:

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.V.and(_().both("knows"),_().both("created"))
==>v[1]
==>v[4]

AND 基準を満たす頂点のエッジ/パスを取得するには、次のようにします。

gremlin> g.V.and(_().both("knows"),_().both("created")).bothE("created","knows").dedup
==>e[9][1-created->3]
==>e[7][1-knows->2]
==>e[8][1-knows->4]
==>e[10][4-created->5]
==>e[11][4-created->3]

Gremlin の最初の部分は、「知っている」エッジと「作成された」エッジの両方を持つ頂点を取得するため、返された両方の頂点のエッジを安全に取得して、一意のものを返すことができます。

于 2012-12-11T12:08:52.537 に答える