2017-11-30 5 views
2

私のグラフでは、2つのノード間に複数の関係があります。例えば、 A-[HAS_P]->B,A-[HAS_Q]->BおよびA-[HAS_R]->BHAS_Rを除外するにはどうすればいいですか?他の2つの関係HAS_PHAS_QのパターンA-[]-Bを表示しますか?このクエリを試しましたが、すべての関係が表示され、HAS_Rの関係は除外されません。Cypher除外関係

MATCH x = (A)-[r*..4]-(B) 
WHERE NONE(r in relationships(x) WHERE type(r)="HAS_R") 
RETURN x 

答えて

2

デフォルトでは、ブラウザは返されたノード間のすべての関係を表示するように設定されています。

あなたはチェックを外しにより、このチェックボックスこの機能を無効にすることができます:あなたのクエリは、データ・モデルに応じて、簡単にすることができ

Neo4j browser configuration

0

を:

(1)あなたが唯一のこの3つの関係タイプを使用している場合(HAS_PHAS_RHAS_Q)、あなたができる2つを指定することができます。

MATCH x = (A)-[:HAS_P|HAS_Q*..4]-(B) 
RETURN x 

(2)あなたは、他の関係タイプは、(より将来的に表示される場合があります)可能性がある場合:

MATCH x = (A)-[*..4]-(B) 
WHERE NONE(r in relationships(x) WHERE type(r) = 'HAS_R') 
RETURN x 

注:あなたはMATCH部分に関係の名前(r)を指定する必要はありませんクエリの

また、ウェブブラウザのUIを扱うための@ logisimaの答えを確認してください。

関連する問題