我有3個標籤,A,B和Z.A & B都與Z有關係。我想查找所有A節點沒有任何共享任何節點Z與BCypher查詢其中2個不同標籤不包含與第3個標籤/節點的關係
目前,做一個正常的查詢,其中存在的關係DOES,工作。
MATCH (a:A)-[:rel1]->(z:Z)<-[:rel2]-(b:B { uuid: {<SOME ID>} })
RETURN DISTINCT a
但是當我做
MATCH (a:A)
WHERE NOT (a)-[:rel1]->(z:Z)<-[:rel2]-(b:B { uuid: {<SOME ID>} }))
RETURN DISTINCT a
它拋出一個錯誤
Neo4j::Server::CypherResponse::ResponseError: z not defined
不知道這樣做的語法不正確,我試過WHERE NOT EXIST()
但沒有運氣。
查詢是一個較大的一個通過使用neo4jrb /(Neo4j的:: Session.query)一個Rails應用程序
謝謝,這工作完美!對於Cypher/Neo4j還是比較新的。試圖加快由於循環和過度使用neo4jrb的ActiveNode調用而導致的報告。 在上面的相反的一面,我有一個查詢來獲得A和B的關係映射到Z匹配的位置。很簡單。我將如何結合一個查詢來找回他們匹配的Z的集合和剩下的不匹配的Z的另一個集合?如果當前正在查詢以獲得匹配的rels是... MATCH(a:A) - [:rel1] - >(z:Z)< - [:rel2] - (:B {uuid:{ }}) RETURN DISTINCT a,collect({match:z.title}) –
ndyr