检查Neo4J中2个节点之间是否存在关系,如果不是,则创建具有随机ID的节点

时间:2016-01-17 10:28:03

标签: neo4j

我有UserTypeA节点和UserTypeB节点,我想将它们连接到一个用户节点,该节点现在只用于包含随机ID。 是否有可能检查两个节点之间是否存在关系(以检查UserTypeA是否已经有一个连接到他的用户节点),如果没有,则创建一个新的User节点并为该节点设置一个随机ID(它是否均匀)可以设置随机ID?)。 有没有办法在一个查询中执行此操作? (如果关系不存在,请创建新的用户节点并为其设置随机ID)

由于

1 个答案:

答案 0 :(得分:2)

你可以非常直接地做到这一点,几乎将你的英语转换成Cypher:

MATCH (a:User {name:"userA"}),(b:User {name:"userB"})
WHERE NOT (a)-[:KNOWS]-(b)
WITH a,b
CREATE (c:User {name:"userC",id:rand()})
CREATE (a)-[:KNOWS]->(c)
CREATE (b)-[:KNOWS]->(c);