Neo4J查询新建或替换现有关系

2024-04-26 04:43:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个场景,我将不得不为一个新的关系创建节点,或者如果节点存在并且存在一个关系,我必须用新的关系替换现有的关系。两个节点之间只存在一个关系。在

当我从Python客户机使用GDB.查询公司名称:

match (a:user)-[r]->(b:user)
where a.id='3' and b.id='5' 
merge (a)-[r2:test]->(b)
SET r2 = r SET r2.percentage = 80
WITH r
DELETE r
return r

MATCH (a:user),(b:user)
WHERE a.id='3' AND b.id='5'
MERGE (a)-[r:test]->(b) 
RETURN r

Tags: andtest名称id客户机节点关系match
2条回答

最后,得到了正确的查询。首先我们执行匹配,如果它不起作用,我们执行第二个查询,它执行一个create,如果它已经存在,它什么也不做。在

match (a:user)-[r]->(b:user) 
where a.id=3 and b.id=5 
merge (a)-[r2:test4]->(b) 
set r2.percentage = 50 
delete r 
return a,b, r2

MERGE (a:user {id:3})-[r:test]->(b:user {id:5}) 
ON CREATE 
SET r.percentage = 55
ON MATCH
SET r.percentage = 55

如果要将特定类型的现有关系替换为新关系:

match (a:user {id:'3'})
match (b:user {id:'5'})
merge (a)-[newRel:NEW_TYPE]->(b) //create the new rel if missing 
set newRel.percentage = 80
match (a)-[oldRel:OLD_TYPE]->(b) //match the old rel
delete oldRel //and delete it

但如果您只想在现有关系上设置一个属性并在丢失时创建它:

^{pr2}$

相关问题 更多 >