无论我如何摆动它,我都需要某种函数来查找作为参数提供的数组中项的索引。
我试图简单地根据数组中某个属性的索引更新集合中的项目,并且已经通过Cypher docs进行了近2个小时的研究......
通过该数组对项目进行排序,然后在有序列表上运行foreach也是可以接受的......
答案 0 :(得分:1)
关注@ stefan-armbruster的回答和精彩的博客文章,可以通过以下方式完成缓慢但简单的 index_of :
reduce(x=[-1,0], i IN [1,2,7,5,21,5,1,435] |
CASE WHEN i = 21 THEN [x[1], x[1]+1] ELSE [x[0], x[1]+1] END
)[0]
这里reduce
函数使用两个元素数组:位置和当前索引。如果数组中的元素与给定条件匹配,则reduce数组的第一个元素将替换为当前索引。
我在neo4j控制台http://console.neo4j.org/?id=34byv
答案 1 :(得分:0)
我最近blogged about that。您可以将reduce
函数与三元素数组一起用作包含
作为查找数组中max元素索引的示例:
RETURN reduce(x=[0,0,0], i IN [1,2,2,5,2,1] |
CASE WHEN i>x[2] THEN [x[1],x[1]+1,o] ELSE [x[0], x[1]+1,x[2]] END
)[0]