📅  最后修改于: 2023-12-03 15:17:50.890000             🧑  作者: Mango
Neo4j是一个图数据库,经常用于存储和查询大规模的图形数据。当需要查询图形数据时,WITH子句是非常有用的一个工具。它允许您在查询中使用中间结果并将其传递到下一个查询或子查询中。
WITH子句的基本语法如下:
MATCH (n:Node)-[r:RELATIONSHIP]->(m:Node)
WHERE n.property = 'value'
WITH n, m, r
RETURN n.property, m.property, type(r)
在这个例子中,WITH n, m, r
一行是WITH子句。它将中间结果n、m和r传递到下一个查询中。注意,WITH子句可以使用任意数量的表达式。
WITH子句的一般用途包括:
WITH子句可以用来筛选中间结果,只返回您要查看的属性或关系类型。在下面的例子中,我们将从一个人开始,并仅返回与改人相关的电影中所有演员的名字。
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)<-[:ACTED_IN]-(a:Person)
WHERE p.name = 'Tom Hanks'
WITH a.name AS ActorName
RETURN ActorName
使用WITH子句,您可以将多个查询合并为一个查询。这可以提高查询效率,并节省您的时间。在下面的例子中,我们将演员和电影匹配在一起,然后将演员的信息与电影一起返回。
MATCH (a:Person)-[:ACTED_IN]->(m:Movie)
WITH a, m
MATCH (d:Person)-[:DIRECTED]->(m)
RETURN a.name, m.title, d.name
使用WITH子句,您可以将中间结果进行聚合。在下面的例子中,我们将找到有多少人出演了电影。
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)
WITH count(p) AS ActorsCount, m.title AS MovieTitle
RETURN ActorsCount, MovieTitle
WITH子句是Neo4j中非常有用的工具。它使您能够更有效地查询和处理图形数据。在本文中,我们介绍了WITH子句的基本语法以及其在筛选、合并多个查询和聚合中间结果方面的用途。