Neo4j 和 Cypher
Neo4j and Cypher
我正在学习 Neo4j 和 Cypher。我如何让它工作,以便答案只是标题和导演的名字?该数据库是来自“Graph Academy”的 Neo4j Movie。这是问题:
“《你做的事》的导演在哪些(1995 年上映)电影(以及扮演什么角色)中出演?
这是我目前的情况:
MATCH (p:Person)->(m:Movie {title: 'That thing you do'})->[:ACTED_IN |DIRECTED] WITH date(m.released = 1995) RETURN m.title as Movie, p.role as Roles
将像这样的复杂查询分解成几个步骤通常很有帮助:
查找电影“你做的事”...
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})
RETURN thatthingyoudo
...找到那部电影的导演
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)
RETURN director
...查找该导演演过的电影
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)-[:ACTED_IN]-(m:Movie)
RETURN m
...不关心所有电影,只关心 1995 年的电影
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)-[:ACTED_IN]-(m:Movie {released:1995})
RETURN m
...最后,只提取导演姓名和电影名称以及角色,
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)-[actedIn:ACTED_IN]-(m:Movie {released:1995})
RETURN m.title, director.name, actedIn.roles
我正在学习 Neo4j 和 Cypher。我如何让它工作,以便答案只是标题和导演的名字?该数据库是来自“Graph Academy”的 Neo4j Movie。这是问题: “《你做的事》的导演在哪些(1995 年上映)电影(以及扮演什么角色)中出演?
这是我目前的情况:
MATCH (p:Person)->(m:Movie {title: 'That thing you do'})->[:ACTED_IN |DIRECTED] WITH date(m.released = 1995) RETURN m.title as Movie, p.role as Roles
将像这样的复杂查询分解成几个步骤通常很有帮助:
查找电影“你做的事”...
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})
RETURN thatthingyoudo
...找到那部电影的导演
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)
RETURN director
...查找该导演演过的电影
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)-[:ACTED_IN]-(m:Movie)
RETURN m
...不关心所有电影,只关心 1995 年的电影
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)-[:ACTED_IN]-(m:Movie {released:1995})
RETURN m
...最后,只提取导演姓名和电影名称以及角色,
MATCH (thatthingyoudo:Movie {title: "That Thing You Do"})-[:DIRECTED]-(director:Person)-[actedIn:ACTED_IN]-(m:Movie {released:1995})
RETURN m.title, director.name, actedIn.roles