使用cypher,我希望在两个节点(nodeA和nodeC)之间创建一个关系。
首先,我必须检查这种关系(nodeA :OWNS nodeC)是否存在。如果没有关系,我想删除:拥有关系nodeA可能与其他其他节点(例如。nodeA :拥有nodeB)和create :在nodeA和nodeC之间拥有。
有什么有效的方法让我用塞弗做这个吗?
谢谢。
编辑:我已经接受了一个答案,但我接受了一个小蛋饼。如果nodeA有多个:OWNS,通过为nodeB提供特定的id,它只会从nodeB中删除:OWNS并与nodeC交换它,对吗?
发布于 2014-04-30 16:25:55
我不认为Cypher让你做任何花哨,除了设置合并的“在创建”和“在匹配”。
一种方法可能是在单独的Cypher查询中这样做。
然而,这也可能起到了作用:
MATCH (nodeA {id: <nodeA_id>})-[r:OWNS]->(nodeB), (nodeC {id: <nodeC_id>})
WHERE (nodeB) <> (nodeC)
MERGE (nodeA)-[:OWNS]->(nodeC)
DELETE r如果可能的话,一定要使用标签来标识节点,例如NodeA:User。这将大大加快速度。
如果这对你有用,请告诉我们。
HTH
https://stackoverflow.com/questions/23391116
复制相似问题