2016-11-22 238 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