在Cypher中,您可以使用WITH
子句进行嵌套查询。WITH
子句允许您在查询的不同阶段对结果进行转换和筛选。这里有一个简单的例子来说明如何在Cypher中进行嵌套查询:
假设我们有以下两个节点类型:Person
和Movie
,它们之间存在ACTED_IN
关系。
CREATE (p1:Person {name: "Alice"})-[:ACTED_IN]->(m1:Movie {title: "The Matrix"}) CREATE (p2:Person {name: "Bob"})-[:ACTED_IN]->(m2:Movie {title: "Inception"}) CREATE (p1)-[:ACTED_IN]->(m3:Movie {title: "The Matrix"})
现在,我们想要查询所有演员(Person
节点),他们参演了两部或更多的电影。我们可以使用嵌套查询来实现这个目标:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WITH p, COUNT(m) AS movie_count WHERE movie_count >= 2 WITH p, movie_count RETURN p.name, movie_count
在这个查询中,我们首先使用MATCH
子句找到所有演员和他们参演的电影。然后,我们使用WITH
子句将结果传递给下一个WITH
子句,以便我们可以计算每个演员参演的电影数量。接下来,我们使用WHERE
子句筛选出演艺了两部或更多电影的演员。最后,我们返回演员的名字和他们参演的电影数量。
这个例子展示了如何在Cypher中使用WITH
子句进行嵌套查询。您可以根据需要调整查询以满足您的需求。