neo4j最短路径查询关系,其中

neo4j最短路径查询关系,其中,neo4j,cypher,shortest-path,Neo4j,Cypher,Shortest Path,下面是返回最短路径的查询 MATCH p=shortestPath((a:Person{pid:"aaa"})-[:IS_RELATED_TO*1..3]->(b:Person{fid:"bb"})) RETURN p 正在返回正确的结果: 但我的要求是返回最短路径,其中关系的属性名为“status”=“approved” 所以我尝试了以下查询 MATCH p=shortestPath((a:Person{pid:"aaa"})-[:IS_RELATED_TO*1..3]->(b

下面是返回最短路径的查询

MATCH p=shortestPath((a:Person{pid:"aaa"})-[:IS_RELATED_TO*1..3]->(b:Person{fid:"bb"})) RETURN p
正在返回正确的结果:

但我的要求是返回最短路径,其中关系的属性名为“status”=“approved”

所以我尝试了以下查询

MATCH p=shortestPath((a:Person{pid:"aaa"})-[:IS_RELATED_TO*1..3]->(b:Person{fid:"bb"})) 
WHERE ALL(x IN relationships(p) WHERE x.status='approved') 
RETURN p

它没有返回预期结果。

查询看起来很好,所以我猜问题可能出在数据中。你能再检查一下是否存在这样一条路径,即每个:是否与该方向的状态为“已批准”的关系相关?如果您能提供一些示例数据或密码创建查询,我们可以重新创建它,这可能会有所帮助。非常感谢@InverseFalcon。你说得对。没有满足该条件的数据。因此,我与不同的节点进行了交叉检查,其中所有关系的状态都为“已批准”,这将返回预期的结果,并且工作正常。