我一直在使用所有最短路径从根节点检索一定数量关系中的所有关系。例如,以标准Matrix主题graph运行以下查询。
查询1:
MATCH p = allshortestPaths((n:Crew)-[r*0..3]-(m))
WHERE n.name = 'Neo' UNWIND relationships(p) AS rels
RETURN COLLECT(DISTINCT rels)
查询2:
MATCH (n:Crew)-[r*0..3]-(m)
WHERE n.name = 'Neo' UNWIND r AS rels
RETURN COLLECT(DISTINCT rels)
第二个示例按预期工作,但allShortestPaths示例错过了Morpheus和Trinity之间的关系。
知道为什么吗?
答案 0 :(得分:4)
allShortestPaths()
示例省略了Morpheus
和Trinity
之间的关系,因为Neo
和Trinity
之间的最短路径不包含省略的关系。
allShortestPaths()
示例返回Neo
与每个不同节点之间最短路径的最短路径。由于Neo
和Trinity
之间已存在直接的一步路径,因此将忽略这两个节点之间的任何更长路径。