你怎么办?Neo4j

你怎么办?Neo4j,neo4j,with-clause,Neo4j,With Clause,我不明白WITH子句在Neo4j中的作用。我读了这篇文章,但不太清楚WITH条款。例子不多。例如,我有下面的图表,其中蓝色节点是足球队,黄色节点是他们的体育场。 我想找两个或更多球队比赛的体育场。我找到了这个查询,它很有效 match (n:Team) -[r1:PLAYS]->(a:Stadium) with a, count(*) as foaf where foaf > 1 return a count(*)表示匹配行的数量。但我不明白这个从句能做什么 WITH允许您将数据

我不明白WITH子句在Neo4j中的作用。我读了这篇文章,但不太清楚WITH条款。例子不多。例如,我有下面的图表,其中蓝色节点是足球队,黄色节点是他们的体育场。

我想找两个或更多球队比赛的体育场。我找到了这个查询,它很有效

match (n:Team) -[r1:PLAYS]->(a:Stadium)
with a, count(*) as foaf
where foaf > 1
return a

count(*)表示匹配行的数量。但我不明白这个从句能做什么

WITH
允许您将数据从查询的一部分传递到下一部分。下一个查询部分将提供您在中列出的内容

您可以使用聚合、跳过、限制、按顺序,这与作为回报的操作非常相似。 唯一的区别是,表达式必须获得别名为
的别名才能在以后的查询部分中访问它们

这意味着您可以链接查询部分,其中一个查询部分计算一些数据,下一个查询部分可以使用该计算数据。在您的例子中,
groupby和have
将是SQL中的功能,但WITH的功能要强大得多

这是另一个例子

match (n:Team) -[r1:PLAYS]->(a:Stadium)
with distinct a 
order by a.name limit 10
match (a)-[:IN_CITY]->(c:City)
return c.name