在本教程中,有以下Cypher查询:
MATCH (gene:Person)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)
WHERE gene.name="Gene Hackman"
RETURN DISTINCT other;
我一般都了解查询。匹配ACTED_IN&#34;任何&#34;的所有Person节点节点,其中基因:Person节点的名称属性等于&#34; Gene Hackman&#34;。
然后返回一组独特的&#34;其他&#34; ACTED_IN同一组&#34;任何&#34;节点作为Gene Hackman。
返回的是一组节点,不包括Gene Hackman节点。
似乎返回的节点集将包含Gene Hackman节点。没有明确过滤掉包含名称&#34; Gene Hackman&#34;在Cypher查询中。因此,与Gene Hackman在同一部电影中扮演的节点集也应包括Gene Hackman。
我假设有一些固有的规则正在应用,但到目前为止的教程还没有说明该规则是什么,或者我只是错过了它:^)。
谢谢, 托德
答案 0 :(得分:2)
规则是模式中的关系不会被重用。一旦您遵循第一个:ACTED_IN关系,就无法在相同的模式匹配中再次关注它。
答案 1 :(得分:0)
Wes的答案还可以,并帮助了我。另请注意,即使您使用2路径编写查询
,此规则仍然有效MATCH (gene:Person)-[:ACTED_IN]->(m),
(m)<-[:ACTED_IN]-(other)
WHERE gene.name="Gene Hackman"
RETURN DISTINCT other;