1
我想使用Cypher删除与Neo4j数据库中的特定节点相关的连接图形。用例是删除“开始”节点以及存在起始节点路径的所有节点。为了限制交易,查询必须是迭代的,并且不得断开连接的图。使用Cypher删除连接的图形
直到现在我使用此查询:
OPTIONAL MATCH (start {indexed_prop: $PARAM})--(toDelete)
OPTIONAL MATCH (toDelete)--(toBind)
WHERE NOT(id(start) = id(toBind)) AND NOT((start)--(toBind))
WITH start, collect(toBind) AS TO_BIND, toDelete limit 10000
DETACH DELETE toDelete
WITH start, TO_BIND
UNWIND TO_BIND AS b
CREATE (start)-[:HasToDelete]->(b)
,并调用它,直到删除节点等于0
有没有更好的查询呢?
我认为你试过了所有连接节点的可变长度路径和每个连接节点的DETACH DELETE?这是否炸毁你的堆? – InverseFalcon
是的,但问题是查询不适用于大图,多次调用查询可能会破坏连接的图。 – cde