我使用LOAD CSV
进行了一些测试,我发现了一个问题。如果还没有使用CREATE
,那么如何创建一个中间节点?
例如:
我有(p:Person)-[:HAS_BANCOMAT]->(bm:Bancomat)-[:FROM]->(b:Bank)
。在我的模型中,一个人只能有一个bancomat,所以,如果在我的CSV文件中我会找到一些实际上有一个以上Bancomat的人,我会坚持第一次出现。
我最终得到了这个剧本:
LOAD CSV FROM 'file:///myfile.csv' as row
WITH row.name as name, row.bank as bank, row.id as bancomat_id
//OMITTING CREATING PERSONS p AND BANKS b PART
//JUST GOING ON WHAT IS NOT WORKING
WHERE size((p)-[:HAS_BANCOMAT]->(:Bancomat)-[:FROM]->(b)) = 0
CREATE (bm:Bancomat {bancomatId: row.bancomat_id})
CREATE (p)-[:HAS_BANCOMAT]->(bm)
CREATE (bm)-[:FROM]->(b)
尺寸部分不起作用。我还尝试在NOT
路径上使用(p)-[:HAS_BANCOMAT]->(:Bancomat)-[:FROM]->(b)
,但它也无法使用。
MERGE
不是我正在寻找的解决方案。
关于我做错了什么的任何建议?
EDIT1:它不能正常工作,因为如果有些人有一个以上的话,这个剧本会创建多个链接的Bancomat。