2017-12-05 6 views
0
In JanusGraph I have 4 nodes. 
A(name=alice) -> B 
B -> C 
C -> D 
D -> A 

I want to get all the cycles from node A. 

g.V().has('name', 'alice').both().both().cyclicPath().path().by('name')接続されているすべての頂点をどのように循環させることができますか?

私は、A-> B-> AとA-> D-> Aを得ることができます。しかし、私はA→B→C→D→Aを得ることができません。 頂点Aから頂点Aまでのすべてのパスを取得したいです。 groovy言語を使用するにはどうしたらいいですか?あなたが唯一のため、あなたのパスが唯一の「アリス」の頂点と離れて「アリス」から各ステップで2つの頂点が含まれるであろう長さ3することができboth().both()で二回「アリス」から離れて通過している

答えて

3

(すなわちboth()は一歩です次のステップは第2のboth()です)。もしあなたが "D"をしたいのであれば、Gremlinは別のエッジを横切ることができるようにもう一つ別のboth()を追加しています。もう一つは "D"から "alice"に戻ると思います。

それとも、あなたは単にrepeat()を使用することができます:私はどのように多くの歩私はboth()を通過したかった「アリス」から定義するtimes(4)でループを制御

g.V().has('name', 'alice'). 
    repeat(both()).emit().times(4). 
    cyclicPath(). 
    path().by('name') 

注意。 until()を使用して、ループ終端を制御するより動的な方法を制御することもできます。詳細はrepeat()を参照してください。

関連する問題