2017-11-11 251 views
0

我使用此代碼獲得節點ab之間包含兩個或更少關係的路徑RTNeo4j。創建約束來計算具有類型「RT」的關係?

MATCH (a:Tes1 { title: "a" }),(b:Tes1 { title: "b" }), p=shortestPath((a)-[r:BT|RT*]-(b)) 
WITH count(type(r)='RT') as cnt 
WHERE cnt < 3 
RETURN p; 

錯誤:

Type mismatch: expected Relationship but was List (line 2, column 17 (offset: 111)) "WITH count(type(r)='RT') as cnt"

我知道這個錯誤的手段,但我不知道另一種方式。 請幫助

回答

1

你不能指望一個特定類型的集合,需要對其進行過濾,並得到其大小:

MATCH (a:Tes1 { title: "a" }),(b:Tes1 { title: "b" }), p=shortestPath((a)-[r:BT|RT*]-(b)) 
WITH p, filter(x IN relationships(p) WHERE type(x) = "RT") AS rtRels 
WHERE size(rtRels) < 3 
RETURN p;