如何在neo4j中的MERGE ON CREATE SET查询中添加新关系

时间:2017-04-07 17:15:24

标签: neo4j

我有一个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。

1 个答案:

答案 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