使用UNWIND和CREATE创建多个关系

问题描述

我有以下查询

UNWIND [100,200,300] AS CODENUM
MATCH (system1:System),(group1:SystemGroup)
WHERE system1.Name = 'Main' AND group1.Name = 'MainGroup'
CREATE (system1)-[:CODE_CODENUM]->(group1)

它创建3个关系,但所有名称都相同-CODE_CODENUM

我想要CODE_100,CODE_200,CODE_300 如何实现呢?

我尝试将CODENUM包裹在方括号中,但出现错误

Neo.ClientError.Statement.ParameterMissing: Expected Parameter(s): CODENUM

解决方法

要能够创建具有动态类型的关系,您将需要使用APOC库。

这里是一个例子:

 UNWIND [100,200,300] AS CODENUM
 MATCH (system1:System),(group1:SystemGroup)
 WHERE system1.Name = 'Main' AND group1.Name = 
  'MainGroup'
  CALL apoc.create.relationship(system1,'CODE_' 
          +CODENUM,{},group1) YIELD rel
   RETURN distinct true