У меня есть файл .csv с тремя столбцами, разделенными ",". Первый столбец содержит имена, 2-й столбец содержит фамилии, а 3-й столбец содержит значения:
Lname,Fname,Num
Brown,Helen,3
Right,Eliza,1
Green,Helen,3
Pink,Kate,2
Yellow,Helen,3
и другой файл .csv, подобный этому:
central,value
cent1,10
Я хочу создать узлы для столбца Lname и узлы для столбца Fname. Для строк, имеющих одинаковое Fname, я хочу подключить Lname к соответствующему Fname. Например, я хочу иметь узел "Helen", к которому три узла "Brown", "Green" и "Yellow" подключены к "Helen" (также, если Fname идентичен, Num также идентичен), я также хочу подключить "Fname" узлы к «центральному узлу». Это мой желаемый вывод:
Я использую этот код:
LOAD CSV WITH HEADERS FROM 'file:///central.csv' AS frow
MERGE (c:center {name: frow.central})
WITH *
LOAD CSV WITH HEADERS FROM 'file:///names.csv' AS srow
WITH srow.Fname AS first, srow.Lname AS last, srow.Num as num
MERGE (p:la {last: last})
MERGE (o:fi {first: first, num: num})
MERGE (c)-[r:CONTAINS {first:first}]->(o)
MERGE (o)-[rel:CONTAINS {first: first}]->(p)
RETURN count(o)
Когда я нажимаю на каждый first
узел в Neo4j я ожидаю увидеть first
и num
в качестве его свойств из-за этой строки:
MERGE (o:fi {first: first, num: num})
, но используя этот код, только один из first
узлов содержит num
как его свойства. Другие узлы first
не показывают num
в качестве своих свойств. Что не так?