2014-10-08 39 views
1

我正在嘗試編寫一個密碼查詢,該查詢返回一條路徑,條件是每個步驟都必須具有值小於或等於的值的timestamp屬性上一步。以下是我目前爲止的內容。Cypher:找到滿足步驟i和i之間的條件的路徑+ 1

Match path=(a:NODE)-[:PARENT*]->(b:NODE) 
WHERE a.name='SOME_VALUE' and b.name='SOME_OTHER_VALUE' 
WITH path, relationships(path) as steps 
WHERE ALL (i in Range(0, length(steps) - 1) WHERE steps[i].timestamp <= steps[i+1].timestamp) 
RETURN path 

我想我所擁有的是接近但是neo4j web控制檯告訴我,我有一個語法錯誤。

Invalid input '.': expected whitespace, '[', "=~", IN, IS, '^', '*', '/', '%', '+', '-', '<', '>', "<=", ">=", '=', "<>", "!=", AND, XOR, OR or ')' (line 4, column 60) 
"WHERE ALL (i in Range(0, length(steps) - 1) WHERE steps[i].timestamp <= steps[i+1].timestamp)" 
                  ^

我看到一個關係集合的屬性進行訪問另一個stackoverflow question這樣,所以我不知道我做錯了。

回答

1

你與你的發言非常接近。您需要將steps[i]換成括號:

Match path=(a:NODE)-[:PARENT*]->(b:NODE) 
WHERE a.name='SOME_VALUE' and b.name='SOME_OTHER_VALUE' 
WITH path, relationships(path) as steps 
WHERE ALL (i in Range(0, length(steps) - 1) WHERE (steps[i]).timestamp <=  (steps[i+1]).timestamp) 
RETURN path 
+0

謝謝,我不敢相信我沒有嘗試過。 – 2014-10-08 17:44:18

相關問題