【发布时间】:2021-04-29 16:06:38
【问题描述】:
我的问题与这个主题非常接近:Cypher query: Finding all paths between two nodes filtered by relationship properties 但我想要做的是找到沿着路径增加关系属性值的路径。因此,在之前的主题中,示例解决方案路径(从 A 到 D)将是:
A->D 和 A->B->D
我使用了上一个主题的解决方案
START a=node(1), d=node(4)
MATCH p=a-[r:ACTIVATES*..]->d
WITH head(relationships(p)) as r1,p
WHERE all(r2 in relationships(p)
where r2.temperature > r1.temperature)
return p;
它适用于这个例子。问题是当路径具有超过 2 个关系时,例如:
activates:50 activates:70 activates:60
(A)-------------->(B)-------------->(C)-------------->(D)
不幸的是,这条路径也匹配。
有没有办法用密码编写这个查询,否则我将不得不使用 gremlin 代替?
感谢您的任何建议。
更新:我需要的是一些结构,例如(用伪编程语言):
WITH head(relationships(p)) as r1,p
FOREACH(r2 in tail(relationships(p)):
r1.temperature < r2.temperature, r1 = r2)
但如果可能的话,在密码中。
【问题讨论】: