有没有办法在cypher中添加数组中的值?

时间:2018-01-07 12:15:29

标签: neo4j cypher cypher-3.1

我通过以下cypher查询获得了两个数组

  return p.home,p1.away
    collect(distinct toInteger(p.score[0])) as value1,
    collect(distinct toInteger(p1.score[1])) as value2

这里,value1 = [1,2,3,4]和value = [3,0,6,2] 我想要:

总和(1 + 2 + 3 + 4 + 3 + 0 + 6 + 2)为totalValue?

1 个答案:

答案 0 :(得分:0)

distinct是否必要?如果不是,您只需使用:

RETURN sum(toInteger(p.score[0]) + toInteger(p1.score[1])) as value2

如果必须先使用distinct,则可以对数组中的元素求和,如下所示:

WITH
  [1, 2, 3, 4] AS value1, 
  [3, 0, 6, 2] AS value2
RETURN
  [i IN range(0, length(value1)-1) | value1[i] + value2[i]]

这使用range函数来定义迭代数组的变量i

请注意,value1value2不是最佳名称:数组应具有复数名称(例如values1)。