我使用这样的命令从csv成功创建命名节点:
load csv with headers from "file:/Users/lwyglend/Developer/flavourGroups.csv" as
flavourGroup
create (fg {name: flavourGroup.flavourGroup})
set fg:flavourGroup
return fg
Run Code Online (Sandbox Code Playgroud)
但是,我没有运气使用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
Run Code Online (Sandbox Code Playgroud)
从头部的csv文件看起来有点像这样:
flavour, flavourGroup
fish, marine
caviar, marine
Run Code Online (Sandbox Code Playgroud)
没有错误,命令似乎执行,但实际上没有创建任何关系.
如果我在名称上做一个简单的匹配:鱼和名称:海洋然后构建属于鱼和海洋预先存在的节点与密码之间的关系,这种关系设置得很好.
从csv导入是否有问题?我的代码错了吗?我玩了几个不同的东西,但作为neo4j的全新内容,你会欣赏任何建议.
摆动,
我不确定这是否是您的问题,但我发现如果CSV文件中的逗号后面有空格(如您在示例中所示),它们似乎包含在字段名称和字段中内容.当我制作一个像您展示的CSV文件并尝试加载它时,我发现它失败了.当我取出空间时,我发现它成功了.
作为测试,请尝试以下查询:
LOAD FROM CSV WITH HEADERS FROM "file:/Users/lwyglend/Developer/flavoursByGroup.csv" AS line
RETURN line.flavourGroup
Run Code Online (Sandbox Code Playgroud)
然后尝试这个查询:
LOAD FROM CSV WITH HEADERS FROM "file:/Users/lwyglend/Developer/flavoursByGroup.csv" AS line
RETURN line.` flavourGroup`
Run Code Online (Sandbox Code Playgroud)
恩典与和平,
吉姆