2016-11-22 101 views
1

是否有可能返回與關係鏈接末尾的特定標籤無關的節點。例如。Neo4j返回節點哪些關係鏈接到某個標籤

(EndTargetNode)<--MYREL---(SomeNode)<--MYREL---(SomeNode)<--MYREL---(SomeNode) 
              / | 
              /MYREL 
(Node)<---SOME_REL---(SomeNode)<----MYREL----  | 
                v 
               (SomeNode) 
                | 
               MYREL 
                | 
                v 
               (SomeNode) 

我想匹配所有SomeNode S的不帶MYREL關係與EndTargetNode類型節點結束,並至少有2個MYREL關係。我將如何去做這件事?由於

到目前爲止,我設法只要找到節點與多個MYREL關係:

match (n)-[rel:MYREL]->(e) 
with n, count(e) as rels 
where rels > 1 
return n; 

回答

2

這個查詢將做到這一點,並讀取就像你的定義:

// I want all :SomeNode 
MATCH (n:SomeNode) 
// not related to an :EndTargetNode 
WHERE NOT (n)-[:MYREL]->(:EndTargetNode) 
// and with at least 2 MYREL relationships 
AND size((n)-[:MYREL]->()) >= 2 
RETURN n