Neo4j cypher查询删除除一个子节点以外的所有子节点及其关系

时间:2018-02-14 07:36:57

标签: neo4j cypher

我正在尝试删除除一个子节点之外的子节点。

当我执行这个Cypher时:

MATCH (n{name:'Java'})-[r]-(c)
return c.name

我得到了可能的节点名称,但我只需要最长的节点名称,我必须删除其余的节点及其关系。

1 个答案:

答案 0 :(得分:1)

此查询应该有效:

MATCH (n{name:'Java'})--(c)
WHERE EXISTS(c.name)
WITH c ORDER BY LENGTH(c.name) DESC
SKIP 1
DETACH DELETE c;

它找到具有c属性的所有name个节点,按name值的长度按降序排序,跳过最长的c节点名称,并使用DETACH DELETE删除其他c个节点及其所有关系。