Neo4j 当节点存在时创建关系,否则创建新节点
我有两种类型的节点工作人员和客户端,其中工作人员 斯塔夫利斯特Neo4j 当节点存在时创建关系,否则创建新节点,neo4j,cypher,Neo4j,Cypher,我有两种类型的节点工作人员和客户端,其中工作人员 斯塔夫利斯特 { "name": "vipul", "cprNumber": 121 } ,{ "name": "amit", "cprNumber": 123 } 客户名单 { "property1": "pptVal", "cprNumber": 121 } 现在,我想在这两个节点之间创建一个关系,就像在第一种情况下,CPR编号匹配,因此关系为vipul创建“属于”,但由于没有,amit的CPR编号存在任何节点,因
{
"name": "vipul",
"cprNumber": 121
}
,{
"name": "amit",
"cprNumber": 123
}
客户名单
{
"property1": "pptVal",
"cprNumber": 121
}
现在,我想在这两个节点之间创建一个关系,就像在第一种情况下,CPR编号匹配,因此关系为vipul创建“属于”,但由于没有,amit的CPR编号存在任何节点,因此需要创建一个新节点并创建一个关系。我认为您可以使用以下方法实现您的目标:
您是否尝试合并?如果找到匹配项,则合并,否则创建一个新节点并添加关系请查看参考Imagehi@bruno peres不幸的是,客户端节点不等于员工列表,因此使用案例(或其他方法),如果没有具有该CPR编号的节点可用,我们需要创建(客户端的)节点
// Match Vipul and Amit nodes
MATCH (a:Client)
// Match :ClientList node when it has cprNumber = a.cprNumber.
// When no node is matched, create it.
MERGE (b:ClientList {cprNumber : a.cprNumber})
// Create :BELONGS_TO relationship
CREATE (a)-[:BELONGS_TO]->(b)