所以,让我们说我和r.myarray的财产有关系:
[1,2,3,4,5,6,7]
我需要编写一个查询来替换数组中的项目 - 最多包含一个保证在数组中的任意成员(在本例中为3) - 使用另一个数组 - let&let #39; s说:
[6,12,13]
获得结果:
[6,12,13,4,5,6,7]
我看到你可以使用RANGE或子集符号来表示数组(egrmyarray [0..x])来指定数组的一部分,理论上可以做SET用第一个数组替换数组加上第二个子集(r.myarray [x..r.myarray.length],或类似的东西)。不过,我距离完整答案还有半英里远。
编辑:最终,可插入查询:
START r=relationship(726)
SET r.myarray = [1,2,3,4] + filter(y in r.ancestors where NOT (y IN [718]));
答案 0 :(得分:2)
范围可能不是你想要的。 Range
生成一组数字。它很适合循环,就像你想要查看1-10中的所有数字一样,但它对其他数组索引没那么有用。您可能希望在集合,索引操作上使用+
运算符的组合,可能只有extract
和filter
。结合这些将让你基本上做任何你喜欢的事情。以下是您可以做的事情的一些示例。我正在使用WITH
子句来显示数据样本,您当然可以在任何节点属性上执行此操作:
/* Return only the first three items */
with [1,2,3,4,5,6,7] as arr return arr[0..3];
/* Cut out the 4th item, otherwise return everything */
with [1,2,3,4,5,6,7] as arr return arr[0..3] + arr[4..];
/* Return only the even numbers */
with [1,2,3,4,5,6,7] as arr
return filter(y in
extract(x in arr | case when (x % 2 = 0) then x end) where y > 0);