首页 文章

在neo4j中从csv import创建关系时遇到问题

提问于
浏览
1

我使用这样的命令从csv成功创建命名节点:

load csv with headers from "file:/Users/lwyglend/Developer/flavourGroups.csv" as
flavourGroup                
create (fg {name: flavourGroup.flavourGroup}) 
set fg:flavourGroup 
return fg

但是,我没有运气使用csv中的load来创建与类似命令的关系:

load csv with headers from "file:/Users/lwyglend/Developer/flavoursByGroup.csv" as
relationship 
match (flavour {name: relationship.flavour}), 
        (flavourGroup {name: relationship.flavourGroup}) 
create flavour-[:BELONGS_TO]->flavourGroup

从头部的csv文件看起来有点像这样:

flavour, flavourGroup
fish, marine
caviar, marine

没有错误,命令似乎执行,但实际上没有创建任何关系 .

如果我在名称上做一个简单的匹配:鱼和名称:海洋然后构建属于鱼和海洋预先存在的节点与密码之间的关系,这种关系设置得很好 .

从csv导入是否有问题?我的代码错了吗?我玩了几个不同的东西,但作为neo4j的全新内容,你会欣赏任何建议 .

2 回答

  • 6

    摆动,

    我不确定这是否是您的问题,但我发现如果CSV文件中的逗号后面有空格(如您在示例中所示),它们似乎包含在字段名称和字段中内容 . 当我制作一个像您展示的CSV文件并尝试加载它时,我发现它失败了 . 当我取出空间时,我发现它成功了 .

    作为测试,请尝试以下查询:

    LOAD FROM CSV WITH HEADERS FROM "file:/Users/lwyglend/Developer/flavoursByGroup.csv" AS line
    RETURN line.flavourGroup
    

    然后尝试这个查询:

    LOAD FROM CSV WITH HEADERS FROM "file:/Users/lwyglend/Developer/flavoursByGroup.csv" AS line
    RETURN line.` flavourGroup`
    

    恩典与和平,

    吉姆

  • 1

    我回答你的问题有点晚了,但我不认为这些空间本身就是罪魁祸首 . 在您的示例cypher中,与数据库中的实际节点没有关联,只有名为“relationship”的csv别名 .

    请尝试沿此行尝试:

    load csv with headers from "file:/Users/lwyglend/Developer/flavoursByGroup.csv" as relationship match (f:flavour), (fg:flavourGroup) where f.name = relationship.flavour and fg.name = relationship.flavourGroup create (f)-[:BELONGS_TO]->(fg)

相关问题