小编Tar*_*eeb的帖子

Neo4j-Cypher:从路径中删除节点并维护到路径的所有节点的链接

我想从路径中删除一个节点,而不会危及原始路径节点.

这是我的测试数据库:

测试DB

我想从路径中删除node(2),但我希望节点1,3,4和5在路径中保持链接.

有没有办法在一个查询中执行此操作?到目前为止,我有以下内容:

MATCH p = (:Connect)-[:to*]-(:Connect)
WITH nodes(p) AS connectNodes
UNWIND connectNodes AS connectNode
WITH distinct connectNode
WHERE connectNode.connectID = 2
DETACH DELETE (connectNode)
Run Code Online (Sandbox Code Playgroud)

这将删除节点2并取消链接路径

取消关联的图表

如何在没有节点2的情况下维护原始路径的节点之间的链接?

编辑:

我通过修改接受的答案的答案来解决它

//Make sure node (n) belongs to the path
MATCH (n:Connect {cID:2})-[:to*]-(:Connect {cID:5})
//get attached nodes, if any, ignoring directions
OPTIONAL MATCH (oa:connect)-[:to]-(n)-[:to]-(ob:connect)
//make sure nothing is duplicated 
WHERE oa.cID <> ob.cID
//Use FOREACH to mimic if/else. Only merge oa to ob if they exist. Query fails without it
FOREACH …
Run Code Online (Sandbox Code Playgroud)

path neo4j graph-databases cypher

1
推荐指数
1
解决办法
217
查看次数

标签 统计

cypher ×1

graph-databases ×1

neo4j ×1

path ×1