我的问题非常接近这个主题:Cypher 查询:查找两个节点之间的所有路径,通过关系属性过滤,但我想要做的是找到沿路径具有增加的关系属性值的路径。因此,在之前的主题中,示例解决方案路径(从 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)
但如果可能的话,在密码中。