【发布时间】:2019-12-10 15:53:20
【问题描述】:
我正在学习 Cypher/Neo4j,并且正在使用电影图形数据集。 我想了解如何编写与更复杂的子图匹配的语句并返回整个子图。
例如,如果我想要同一部电影的演员和导演的子图,我可以使用:
MATCH (m:Movie) <-[:DIRECTED]-(p:Person) -[:ACTED_IN]-> (m:Movie)
RETURN *
但是,这仅适用于我正在寻找的子图是一条直线。如果我想扩展上述内容以匹配 A:导演他们出演的电影和 B:出演特定电影 - “电影 X”的人的子图,我不知道该怎么做。我知道我可以使用 WHERE 语句过滤掉演员没有在“电影 X”中表演的子图,但这不会返回代表“电影 X”的节点。
我想知道是否有办法构建这样的查询 - 如下所示:
MATCH (p:Person) -[:ACTED_IN]-> (m:Movie) AND
(p:Person) -[:DIRECTED]-> (m:Movie) AND
(p:Person)-[:ACTED_IN]->(:Movie {title: 'Movie X'})
RETURN *
【问题讨论】:
标签: neo4j cypher graph-databases