如果数组尚未存在,我想为数组添加一个值。
到目前为止,我的代码看起来像这样(注意r.names和{name}都是数组,[1] + [2] = [1,2]
):
MERGE (r:resource {hash:{hash}})
ON CREATE SET r.names = {name}
ON MATCH SET r.names = r.names + {name}
但显然如果{name}
已经在r.names
中,则会再次添加。如果{name}
尚未包含r.names
,我该如何添加INNER JOIN tags_to_items t2 ON (v.id = t2.tagid AND t2.tagid = 5)
INNER JOIN tags_to_items t3 ON (v.id = t3.tagid AND t3.tagid in ('27' ,'69','84' ,'99' ))
?
答案 0 :(得分:1)
使用FILTER
获取r.names
中尚未包含的元素数组并添加它们:
MERGE (r:resource {hash:{hash}})
ON CREATE SET r.names = {new_names}
ON MATCH SET r.names = r.names + FILTER(
el FOR el in {new_names} IF NOT el IN r.names
)