Neo4j - 用其他列表更新列表的问题

问题描述

我有两个列表,我想用第二个列表更新第一个列表。

在 List1 中,一个项目类似于:

out_type: "organizational_unit",edge_type: "has_account",in_type: "account",out_min: 1,out_max: 1,in_min: 1,in_max: 17

在 List2 中,一个项目类似于:

out_type: "organizational_unit",out_min: 0

正如我所说,我想用 list2 (list2.out_min) 的所有现有项更新 list1 (list1.out_min) 的所有匹配项。所以当在 list1 中我的 out_min = 17 时,它应该是 0 之后。

我试过的这个查询

with list1,list2
unwind list1 as l1
with list1 as origin,list2,l1
unwind list2 as l2
with distinct CASE
WHEN l1.out_type = l2.out_type and l1.edge_type = l2.edge_type and l1.in_type = l2.in_type
THEN {out_min: l2.out_min,out_max: l1.out_max,out_type: l1.out_type,edge_type: l1.edge_type,in_type: mm.in_type,in_min: mm.in_min,in_max: mm.in_max}
ELSE l1
END as list1,origin
return origin as origin_list1,collect(list1) as new_list1

不幸的是,所有更新的条目现在都出现了两次。第一次是我的正确更新,第二次是未更新的条目。

Result

这对我来说是有道理的,因为在放松期间,我将保证匹配,而所有其他“非匹配”将直接进入我的案例的 ELSE 部分......我现在的问题是,我完全不知道如何解决这个问题。是否有可能以这种方式合并列表?如何避免“旧”列表条目?

感谢您的帮助:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)