假设我在 a 中有下表csv
。
elementID | groupID | sequence
abc | A | 0
dcv | A | 1
asd | B | 3
ccc | B | 2
abc | B | 4
我已经Element
在 Neo4j 中创建了节点(sequence
不是节点的属性),其属性为 key elementID
。
由此csv
,我需要创建从属于一个组的每个Element
节点到属于同一组的另一个元素的关系,该元素具有下一个sequence
数字。
使用上面的数据,我需要创建一个关系 from abc
to dcv
(A
例如标记), from asd
to abc
(labeled B
)和 from ccc
to再次asd
标记B
。
我是这样想的查询:
LOAD CSV WITH HEADERS FROM "file:///file.csv" AS row
WITH row
MATCH (from:Element {elementID : row.elementID})
MATCH (to:Element {...})
MERGE (from)-[r:row.groupID]->(t)
问题是我不知道如何处理MATCH
第二个节点,因为在图中我需要nodeID
当前row
变量的 while 我只有from
节点的数据。
我该怎么做?有没有办法使用第二个变量来表示csv
要用于第二个的另一个条目MATCH
?
在最后一种情况下,我需要对其表达条件,例如:
WHERE row2.sequence = row.sequence+1 AND row2.groupID = row.groupID