2017-05-11 61 views
0

我是Neo4j的新手,一直在玩關於移動房屋的想法,以便了解更多關於密碼的知識。這是我目前在Neo4j中只找到循環鏈接

每個Person [:擁有]一個House

每個House [:ISIN]一個Street

一個Person [:希望](住)一Street

目的是找到一個完整的'鏈'

如果我運行

MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House) RETURN s,h,p

這會返回給我完整的鏈接權利回到人。 我想要做的只是返回完整的鏈,而不是破碎的。

我也試過

MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House)-[:ISIN]->(s) RETURN s,h,p

但這不會返回結果。有什麼想法嗎?

UPDATE

我拿到了最後的查詢做這個 MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House)-[:ISIN]->(s1: Street) RETURN s,h,p

返回結果,但我不知道這是否是我想要的。

我只想返回循環結果,以便我可以看到完整的房屋移動鏈。最終基於一個人,所以我需要在那裏放一個WHERE。

我會嘗試移動查詢明天更大的數據集

+0

怎麼樣的樣本數據和所需的結果? –

+0

期望的結果是在那裏'我想要做的只是返回完整的鏈而不是破碎的鏈'。你如何看待數據集? –

+0

「永不返回結果」!? 這可能是這樣的循環引用實際上不存在於數據庫中? – hlihovac

回答

0

匹配鏈不會重複的節點,又名一場比賽不能在兩個變量相同的節點相匹配。但你可以打破最後一條鏈到一個where子句

MATCH (s:Street)<-[:WANTS]-(p:Person)-[:OWNS]->(h:House) 
WHERE (h)-[:ISIN]->(s) 
RETURN s,h,p