Neo4j 在一个查询中删除具有给定标签的所有节点及其关系

问题描述 投票:0回答:2

我使用标签将 Neo4j 数据库分成独立的子数据库。在开发过程中,我经常需要擦除整个子数据库。目前我这样做是:

MATCH (n:myLabel)-[r]-() DELETE n, r
MATCH (n:myLabel) DELETE n

我需要两个查询,因为我必须删除所有关系,同时删除它们的节点,但我不知道如何同时匹配未连接的节点。有没有办法在单个查询中擦除由标签标记的整个子图?我使用的是 Neo4j 2.2.1

neo4j
2个回答
10
投票

给你:

MATCH (n:myLabel) OPTIONAL MATCH (n)-[r]-() DELETE n, r

0
投票

来自 Neo4j 文档(https://neo4j.com/docs/cypher-manual/current/clauses/delete/#delete-a-node-with-all-its-relationships):

要删除节点以及连接它们的任何关系,请使用 DETACH DELETE 子句。

要删除与标签“myLabel”匹配的所有节点,包括任何连接的关系,您可以这样做:

MATCH (n:myLabel) DETACH DELETE n
© www.soinside.com 2019 - 2024. All rights reserved.