2017-03-14 42 views
0

我有以下的Neo4j查詢其檢查的關係,兩個節點之間數:爲什麼我的查詢在neo4j中返回0,0?

match (a:T {id:1})-[y:FR]->(b:T {id:3}) match (a)-[x:F]->(b) return SIGN(COUNT(x)), SIGN(COUNT(y))

在數據庫中,但是,存在節點之間都FFR關係,它的返回0,0?

我的查詢出了什麼問題?

+0

做到這兩個:F和:FR存在於相同的節點之間,因爲它看起來像你有:F爲某些節點和:FD爲其他人但沒有聯合 –

回答

1

如果您確實知道節點存在,但不確定是否存在關係,那麼通過執行這樣的匹配可能會消除所有行,因爲失敗的MATCH不會生成行並將行從先前的匹配不符合匹配。在你的情況下,最好在每個節點上進行匹配,然後獲得所需關係類型的SIZE(),或者如果你只是需要返回這種關係是否存在,則返回給定的EXISTS()模式:

match (a:T {id:1}), (b:T {id:3}) 
return EXISTS((a)-[:F]->(b)), EXISTS((a)-[:FR]->(b)) 

當然,如果你只需要1或0,而不是真/假,堅持SIGN(SIZE((a)-[:F]->(b)))等來代替。

+0

我用EXISTS解決了。像魅力一樣工作。謝謝 :) –