我有一个MERGE查询,我希望合并一个节点(如果存在)或创建一个新节点,如果创建了一个新节点,则创建一个链接到新创建节点的新关系,并将属性添加到关系链接节点
基本上是这样的:
MERGE ( user:USER { userId : userId } )
ON CREATE SET
user.password = password ,
user.userID = userID ,
(user)-[:INFO]->(userInfo:PROFILEINFO {firstname:'John',lastName:'Doe'})
RETURN user
然而,我无法弄清楚如何创建新关系,因为这显示错误。
如果用户输入新信息或更新关系,或者如果用户不存在则创建新用户,然后创建关系,我需要更新userInfo。
答案 0 :(得分:4)
您可以使用临时属性和foreach:
MERGE ( user:USER { userId : userId } )
ON CREATE SET
user.password = password ,
user.userID = userID ,
user.isCreated = [true]
FOREACH(ifthen in user.isCreated |
MERGE (user)-[:INFO]->(userInfo:PROFILEINFO {firstname:'John',lastName:'Doe'})
REMOVE user.isCreated
)
RETURN user