這是一個初學者的問題的基礎上,Neo4j的在線培訓。 (第二章:使用模式進行過濾)。過濾使用查詢的WHERE,而無需創建一個新的標識
的問題是關於演員查詢誰與吉恩·哈克曼的工作,但當時他還與羅賓·威廉姆斯的工作不是。
他們的解決方案是:
MATCH (gene:Person {name:"Gene Hackman"})-[:ACTED_IN]->(movie),
(other)-[:ACTED_IN]->(movie),
(robin:Person {name:"Robin Williams"})
WHERE NOT (robin)-[:ACTED_IN]->(movie)
RETURN DISTINCT other;
,試圖找出原因確實需要一個新的標識符3號線,我想下面的代碼片段,它沒有發揮出來。
MATCH (gene:Person)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)
WHERE gene.name="Gene Hackman"
AND other.name <> "Robin Williams"
RETURN DISTINCT other;
和:
MATCH (gene:Person)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)
WHERE gene.name="Gene Hackman"
AND NOT "Robin Williams" IN other.name
RETURN DISTINCT other;
很顯然,我失去了一些東西。 我會很感激任何指針!
感謝John的跟進,您的代碼能夠正常工作並提供正確的結果!我嘗試了練習,並且看看我是否能夠重複使用相同的代碼爲了過濾掉模式,而不是特定的標識符。 – 2014-12-08 18:43:22