【问题标题】:Neo4j load CSV to create dynamic relationship typesNeo4j 加载 CSV 以创建动态关系类型
【发布时间】:2017-12-14 07:55:49
【问题描述】:

我可以将 CSV 加载到 Neo4j 中以获取特定标签(例如 PERSON),并在标签 PERSON 下创建节点。

我还有另一个 CSV 来说明人和人之间的关系,它看起来像:

name1, relation, name2
a, LOVE, b
a, HATE, c

我想在这些对之间创建一个关系,因此创建的关系应该是“LOVE”、“HATE”等,而不是像下面的脚本那样严格的RELATION

load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p
match (a:PERSON) where a.name=p.name1
match (b:PERSON) where b.name=p.name2
merge (a)-[r:REL {relation: p.REL}]->(b)

通过这样做,我有一堆 REL-type 关系,但没有 LOVE- 和 HATE-relations。

换句话说,我希望动态分配脚本最后一行中的REL。然后我可以使用 Neo4j API 查询所有的关系类型。

这可能吗?

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    您可以安装APOC library,然后使用apoc.merge.relationship

    apoc.merge.relationship(startNode, relType, {key:value, ...}, {key:value, ...}, endNode) - 用动态类型合并关系

    load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p
    match (a:PERSON) where a.name=p.name1
    match (b:PERSON) where b.name=p.name2
    call apoc.merge.relationship(a,p.REL,{},{},b) yield rel
    return count(*);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多