【问题标题】:Neo4j 2.2.0 show/delete node with no propertiesNeo4j 2.2.0 显示/删除没有属性的节点
【发布时间】:2015-06-24 16:58:55
【问题描述】:

我有一个没有属性的节点,想显示/找到它然后删除它。 它显示为空白,并且与其他 2 个节点有 [:KNOWS] 关系。

(空节点)-[:KNOWS]->(Ian),(Johan)

我不能只匹配没有名称属性的节点,因为我还有其他没有名称属性的节点。

是否可以显示此节点然后删除它?另外,这可以在 webadmin > 数据浏览器中进行吗?

谢谢, M

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    你能匹配一个没有属性和关系的节点吗?或者是否还有其他要匹配但您希望避免删除的内容?

    我的意思是:

    MATCH (n)-[r:KNOWS]->(p:Person)
    WHERE p.name IN ["Ian","Johan"]
    DELETE r,n;
    

    如果您有其他可能与此查询匹配的节点,您可以尝试通过暗示 n 不应具有特定属性来排除这些节点:

    MATCH (n)-[r:KNOWS]->(p:Person)
    WHERE p.name IN ["Ian","Johan"]
    AND NOT has(n.name)
    DELETE r,n;
    

    您可能希望在实际删除之前先测试结果:

    MATCH (n)-[:KNOWS]->(p:Person)
    WHERE p.name IN ["Ian","Johan"]
    AND NOT has(n.name)
    RETURN n;
    

    我希望这能回答你的问题。

    【讨论】:

    • 非常感谢 albertoperdomo!我是否还需要删除空节点的关系?如果是这样,该怎么做?
    • 很高兴它有帮助!对不起,我忘记了人际关系。是的,如果节点有任何关系,Neo4j 不会让您删除它。我刚刚更新了代码 sn-ps 以删除关系。请注意,您为 rels (r) 分配了一个名称,然后将其包含在 DELETE 子句中。
    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 2014-03-11
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多