我有這個圖:的Cypher查詢不返回所有預期的節點
A<-B->C
B是一個很小的樹的根。恰好有A和B之間的一個關係,和B和C.
當我運行以下之間的一個,則返回一個節點。爲什麼這個Cypher查詢不返回A和C節點?
MATCH(a {name:"A"})<-[]-(rewt)-[]->(c) RETURN c
這似乎是該查詢的上半年會發現的根,而下半年會發現兩個子節點。
直到幾分鐘前,我還以爲它在邏輯上等同於以下查詢其作品。有什麼不同?
MATCH (a {name:"A"})<-[]-(rewt)
MATCH (rewt)-[]->(c)
RETURN c
編輯cybersam
我已經抽象我的數據庫,所以我們可以討論我的具體問題。現在,我們仍然有一個微小的樹,但也有4個節點是根的孩子。(很抱歉,這是不同的,但我發展,不想改變我的環境太多。)
這查詢返回的所有4:
match(a)<-[]-(b:ROOT)-[]->(c) return c
他們中的一個有 「DDDD」 的名字......
match(a {name"dddd"})<-[]-(b:ROOT)-[]->(c) return c
此查詢僅返回它們的。不包括「dddd」。我的天啊。
要回答cybersam的具體問題,這個查詢:
MATCH (a {name:"dddd"})<--(rewt:CODE_ROOT)
MATCH (rewt)-->(c)
RETURN a = c;
返回四行。該值是true, false, false, false
感謝您的答覆。你能澄清你最後一句話嗎?你的意思是關於第一個查詢嗎? –
是的。我已經更新了我的答案,並且可以執行查詢來查看我是否正確。 – cybersam
OP已更新。你似乎是部分正確的。 –