【问题标题】:Neo4j - Cypher query to import category tree without duplicate entryNeo4j - Cypher 查询以导入类别树而没有重复条目
【发布时间】:2015-02-04 14:28:57
【问题描述】:

我有三个独立的类别树,它们将使用密码以任何顺序导入。

  • (c2)-[父]->(c1)
  • (c4)-[父]->(c3)->[父]->(c1)
  • (c5)-[父]->(c3)

并且需要使用查询创建图中提到的结构。我写的查询是

MERGE (:Category {name:'c2'})-[:PARENT]->(:Category {name:'c1'})
MERGE (:Category {name:'c4'})-[:PARENT]->(:Category {name:'c3'})-[:PARENT]->(:Category {name:'c1'})
MERGE (:Category {name:'c5'})-[:PARENT]->(:Category {name:'c3'})

但是上面的查询为我需要避免的第二个合并查询创建重复的类别 c1。此外,第三个查询应该创建现在正确发生的新类别 c3。

还有一点是这三个密码查询应该是独立可执行的。例如:系统已经有一个类别树(c2)-[PARENT]->(c1),需要添加(c4)-[PARENT]-> (c3)->[PARENT]->(c1) 使用密码进入类别树。

我可以采用文档中提到的一些类似方法 http://neo4j.com/docs/stable/cypherdoc-linked-lists.html 。但只是想检查一下是否有解决此问题的简单方法

【问题讨论】:

标签: neo4j cypher


【解决方案1】:

试试这个(第三个查询中没有错字)

MERGE (:Category {name:'c2'})-[:PARENT]->(c1:Category {name:'c1'})
MERGE (:Category {name:'c4'})-[:PARENT]->(:Category {name:'c3'})-[:PARENT]->(c1)
MERGE (:Category {name:'c5'})-[:PARENT]->(:Category {name:'c3'})

【讨论】:

    【解决方案2】:

    您可以使用单个查询来避免重复输入
    MERGE (:Category {name:'c4'})-[:PARENT]->(:Category {name:'c3'})-[:PARENT]->(:Category {name:'c1'})<-[:PARENT]-(:Category {name:'c2'})
    MERGE (:Category {name:'c5'})-[:PARENT]->(:Category {name:'c5'})

    【讨论】:

      【解决方案3】:

      我通过为顶级类别再添加一个名为 Root 的标签来解决此问题。

      第一棵树的密码查询 - (c2)-[PARENT]->(c1)

      MERGE (nc1:Category:Root{name:'c1'})
      MERGE (nc3:Category {name:'c2'})-[:PARENT]->(nc1)
      

      第二棵树的密码查询 - (c4)-[PARENT]->(c3)->[PARENT]->(c1)

      MERGE (nc1:Category:Root{name:'c1'})
      MERGE (nc3:Category {name:'c3'})-[:PARENT]->(nc1)
      MERGE (:Category {name:'c4'})-[:PARENT]->(nc3)
      

      第三棵树的密码查询 - (c5)-[PARENT]->(c3)

      MERGE (nc3:Category:Root{name:'c3'})
      MERGE (nc5:Category {name:'c5'})-[:PARENT]->(nc3)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-23
        • 2018-06-23
        • 1970-01-01
        • 1970-01-01
        • 2015-11-01
        相关资源
        最近更新 更多