【发布时间】:2018-06-05 19:59:08
【问题描述】:
我正在使用 UNWIND 在 NEO4j 中创建多个节点。问题是如果其中一个节点是重复的,它将被拒绝并且整个查询失败。如果它们已经存在,我希望能够在相同节点之间创建多个关系......例如,一个朋友可能会收到来自同一个人的多个邀请。所以我有一组对象 [{email: xxx@mail.com},{email:yyy@mymail.com},...] 被邀请和赞助商的电子邮件赞助商电子邮件。电子邮件受到限制,因此创建副本的尝试将失败并拒绝整个查询。当没有重复时,以下工作正常。
MATCH (s {email: 'sponsor@gmail.com'})
UNWIND $arrayOfObjects as invitees
CREATE (i:Invitee) MERGE (s)-[r:INVITED {since: timestamp()}]->(i)
SET i=invitees
我尝试用 MERGE 替换 CREATE,认为 MERGE 会找到 MATCH 并继续创建关系,但它不起作用..我仍然收到重复错误。在执行查询之前没有清理 arrayOfObjects 是否有另一种方法可以做到这一点?我想要的是副本不会失败,而是与现有的 Invitee 节点建立关系。
【问题讨论】: