2016-05-03 59 views

回答

2

這裏是返回路徑的關係類型的集合一個簡潔的方式:

MATCH (:DOG)-[rels:A|:B|:C*1..3]->(:PERSON) 
RETURN [r IN rels | TYPE(r)]; 

當您匹配變長路徑時,與*rels)的關係是集合的關係。所以,你只需要提取每個關係的TYPE

+0

這正是我所期待的。謝謝! – Inbal

2

這些關係位於返回的路徑對象中。您只需使用relationships將它們拉出到一個集合中,然後返回每個集合的類型。事情是這樣的......

MATCH p=(p1:DOG)-[:A|B|C*1..3]->(p3:PERSON) 
WITH relationships(p) as rels 
UNWIND rels as r 
RETURN type(r) 

這可能說明你的東西正在尋找一個好一點

MATCH p=(p1:DOG)-[:A|B|C*1..3]->(p3:PERSON) 
RETURN reduce(path_str = "", r in relationships(p) | path_str + startNode(r).name + ' --> ' + type(r) + ' --> ') + 
(nodes(p)[length(p)]).name 
+0

這正是我所期待的。謝謝! – Inbal

相關問題