【问题标题】:Neo4j cypher query for deleting all children nodes and its relationships except one child nodeNeo4j 密码查询,用于删除除一个子节点外的所有子节点及其关系
【发布时间】:2018-02-14 07:36:56
【问题描述】:

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

当我执行这个 Cypher 时:

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

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

【问题讨论】:

  • 请提供有关您的问题的更多详细信息。您的数据模型、样本数据以及您迄今为止尝试过的内容是好主意。谢谢!
  • 是否有某些原因您不能删除所有节点,然后从一个 keeper 中添加回节点和属性?

标签: neo4j cypher


【解决方案1】:

这个查询应该可以工作:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多