基于求和关系属性数组的CYPHER查询

CYPHER query based on sum relationship property array

在我的图表中,关系有一个名为 list 的 属性。 list是一个int数组。

看起来像这样:

(head:Node)-[r:RELATIONSHIP {list:...}]->(tail:Node)

我想查询图中的所有尾部,其中列表的总和> 0。

直觉上,我会这样做:

MATCH (:Node)-[r:RELATIONSHIP]->(tail:Node)
WHERE sum(r.list) > 0
RETURN tail

不幸的是,这不起作用。它抛出一个错误。我怎样才能写这个查询? 谢谢

我认为这会满足您的要求

匹配 p=(n1:节点)-[:关系*2..2]->(n2:节点) 以 n1 作为头部,n2 作为尾部,REDUCE(totalScore = 0.0, r in relationships(p) | totalScore + toFloat(r.score)) 作为分数 其中得分> 1.99 return head.name, tail.name, 分数

备注: 在我的示例中,我将固定路径长度指定为 2,以便我可以轻松检查总分... 如果您的图表具有双向关系或循环,请知道 head=tail 是可能的...

这应该适合你:

MATCH (:Node)-[r:RELATIONSHIP]->(tail:Node)
WHERE REDUCE(s = 0, v IN r.list | s + v) > 0
RETURN tail