我在cypher中使用链表模式来表示一些数据。
(node1)-[:NEXT]->(node2)-[:NEXT]->(node3)
问题是我如何在链表节点之间插入newNode
。所以我得到
例如(node1)-[:NEXT]->(newNode)-[:NEXT]->(node2)-[:NEXT]->(node3)
。
有一些角落的情况,newNode
可以在列表的末尾或开始,解决方案需要考虑它们。
是否有一个优雅的结束简单的方法来做到这一点,而不需要多个apod .do.when调用?
您所需要做的就是在新节点中查找,然后删除旧的关系,例如…(我假设这里有一些属性)
MATCH (n1:Node {name:'node1'})-[r:NEXT]->(n2)
CREATE (n1)-[:NEXT]->(:Node {name: 'new Node'})-[:NEXT]->(n2)
DELETE r