gpt4 book ai didi

neo4j - Neo4j 中关系属性的数组替换

转载 作者:行者123 更新时间:2023-12-05 01:25:02 24 4
gpt4 key购买 nike

所以,假设我有关系 r,属性为 r.myarray:

[1,2,3,4,5,6,7]

并且我需要编写一个查询来替换数组中的项目 - 直到包括一个保证在数组中的任意成员(在这种情况下我们说 3) - 用另一个数组 - 比方说:

[6,12,13]

得到结果:

[6,12,13,4,5,6,7]

据我所知,您可以使用数组的 RANGE 或子集表示法(例如 r.myarray[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]));

最佳答案

范围可能不是您想要的。 Range 生成一个数字集合。这对循环很有用,比如你想遍历 1-10 的所有数字,但它对其他数组索引没那么有用。您可能需要在集合、索引操作上结合使用 + 运算符,可能还需要一些 extractfilter。将这些结合起来基本上可以让你做任何你想做的事。以下是您可以执行的操作的一些示例。我使用 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);

关于neo4j - Neo4j 中关系属性的数组替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com