我使用标签将 Neo4j 数据库分成独立的子数据库。在开发过程中,我经常需要擦除整个子数据库。目前我这样做是:
MATCH (n:myLabel)-[r]-() DELETE n, r
MATCH (n:myLabel) DELETE n
我需要两个查询,因为我必须删除所有关系,同时删除它们的节点,但我不知道如何同时匹配未连接的节点。有没有办法在单个查询中擦除由标签标记的整个子图?我使用的是 Neo4j 2.2.1
给你:
MATCH (n:myLabel) OPTIONAL MATCH (n)-[r]-() DELETE n, r
来自 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