1
我有以下查詢,我想避免重複的路徑(simetric也)。neo4j密碼避免重複路徑
MATCH (a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a) return a,b
我已嘗試DISTINCT
關鍵字,但我得到和語法錯誤。
林尋找類似(但也失敗了):
MATCH path=(a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a)
where DISTINCT(path)
return a,b
我沒有看到它,怎麼一個<> b避免得到相同的配對不止一個。 – Ricardo
不是'<>',而是大於或小於'。你匹配'a - [:LIKES] - > b'並且相反'b - [:LIKES-> a'。所以當你得到這些閉環匹配之一時,它會向前和向後運行。你要返回的是一對節點,所以對於每兩個人他們將在每個位置與一個人產生兩場比賽。比較運算符的原則是隻返回其中一個匹配。由於節點的ID始終存在且唯一,因此總是會比另一個更大,並且只返回一對而不是兩次。 –