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

rav*_*dav 3 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
Run Code Online (Sandbox Code Playgroud)

但是我无法弄清楚如何创建新关系,因为这显示了错误。

如果用户输入新信息或更新关系或创建新用户,如果用户不存在,我需要更新 userInfo 然后创建关系。

std*_*b-- 6

您可以使用临时属性和 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
Run Code Online (Sandbox Code Playgroud)