2016-08-03 51 views
0

我有兩個用戶:Neo4j的暗號2版查找一個節點,可能會或可能不存在的關係,同時返回

CREATE (a:user {id: 1}) 
CREATE (b:user {id: 2}) 

用戶可以按照對方:

MATCH (a:user {id: 1}), (b:user {id: 2}) 
CREATE (a)-[r:FOLLOWS]->(b) 

爲了節省網絡上的多次往返我想查找用戶,以及是否有其他用戶在同一查詢中關注他們:

MATCH (a:user {id: 1}), (b:user {id: 2}), (a)-[r:FOLLOWS]->(b) 
RETURN a, b, r 

但是,如果FOLLOWS的關係不存在,我什麼也得不到。有沒有什麼辦法可以總是返回用戶,並且如果關係不存在則獲得NULL的關係?

回答

2

OPTIONAL MATCH將嘗試匹配的模式,並返回那些空值不存在:

MATCH (a:user {id: 1}), (b:user {id: 2}) 
OPTIONAL MATCH (a)-[r:FOLLOWS]->(b) 
RETURN a, b, r 
相關問題