2016-12-01 5 views
1

あるタイプの関係のうち0以上が特定の異なる関係にある2つのノード間のパスを一致させたいとします。一致している必要があります:neo4jは0以上の関係が2番目の関係で終わるパスに一致します

(a) -> [:GRANT] -> (b) 
(a) - [:MEMBER] ->() -> [:GRANT] -> (b) 
(a) - [:MEMBER] ->() - [:MEMBER] ->() -> [:GRANT] -> (b) 

なく

(a) - [:MEMBER] ->() - [:GRANT] ->() -> [:GRANT] -> (b) 

をアイブ氏は試してみました:

MATCH (a) - [:MEMBER *] ->() - [:GRANT] -> (b) 

しかし、それは唯一のwを少なくとも1つのメンバ関係が存在する場合(例えば、()ノードが存在しなければならない場合)、ork。

アイブ氏はまた、このようなことを試みた:

MATCH (a) - [:MEMBER *] -- [:GRANT] -> (b) 

を彼らは構文エラーがあります。

特定の第2の関係タイプでチェーンの終了を保証しながら、オプションで関係を一致させる方法はありますか?

答えて

2

あなたがそうのように0にその変数の長さの関係の最小値を設定する必要があり、非常に近いです:

MATCH (a) - [:MEMBER *0..] ->() - [:GRANT] -> (b) 

あなたが今考えを持っているが、ここではドキュメント内のセクションにlinkです念のため。

+0

叙事詩は、完璧に動作します。とても有難い –