我正在开发用于学习图形数据库的东西。我找到了以下段中查询的最短路径:
start n=node(5),m=node(45) match p=shortestPath(n-[*..1000]->m) return p,length(p)
但我对此有疑问。该查询将返回最短路径而不考虑ROUTE属性。我的意思是,如果存在相同属性,我想获得具有关系的最短路径。
节点A ==> :RELATION(ROUTE_ID = 180)==>节点B ==> :RELATION(ROUTE_ID = 180)==> NODE C ==> :关系式(ROUTE_ID = 197)
当我调用正常的最短路径函数时,它通过随机属性给出了我的关系。我也想关注属性。关键字是什么? 如何解决该问题或如何改进该查询?
感谢。
答案 0 :(得分:3)
如果与ROUTE_ID属性的所有关系都有特定的关系类型,请说“ROUTE'”,那么您可以这样做:
START n=node(5), m=node(45)
MATCH p=shortestPath(n-[:ROUTE*..1000]->m)
RETURN p,length(p);
否则,你可以这样做:
START n=node(5), m=node(45)
MATCH p=shortestPath(n-[r*..1000]->m)
WHERE all(x IN r WHERE has(x.ROUTE_ID))
RETURN p,length(p);
前一种方法应该快得多。