2014-11-18 2 views
1

У меня есть следующий код для импорта данных в CSV. Данные имеют вид A - [: LIKES {times: x}] - B где x - число. Однако при импорте я зациклился на том, как обновлять значение времени, если связь найдена снова. Кажется, есть функция SET, которая позволяет вам это делать, но я не могу правильно ее разместить.Обновить стоимость недвижимости в Neo4j при импорте

LOAD CSV FROM 'file:///home/gvanjoic/file.csv' AS line 
MERGE (n:A {number : line[0]}) 
WITH line, n 
MERGE (m:B {ID : line[1]}) 
WITH m,n 
MERGE (n)-[:LIKES]->(m); 

Просьба помочь мне обновить стоимость имущества.

Спасибо.

ответ

2

[Изменено]

Вы должны быть в состоянии сделать это:

LOAD CSV FROM 'file:///home/gvanjoic/file.csv' AS line 
MERGE (n:A {number : line[0]}) 
WITH line, n 
MERGE (m:B {ID : line[1]}) 
WITH m,n 
MERGE (n)-[rel:LIKES]->(m) 
ON CREATE SET rel.times = (CASE WHEN rel.times IS NULL THEN 0 ELSE rel.times END) + 1; 
+0

Спасибо так много. Теперь я могу обновить значения, соответственно, если узлы уже присутствуют. Однако я не могу этого сделать, когда некоторые узлы/отношения встречаются в первый раз. См. [EDIT] выше – GvanJoic

+0

Я отредактировал свой ответ, чтобы он инициализировал свойство 'times', если оно еще не существует. – cybersam

+0

Спасибо, спасибо.! – GvanJoic

Смежные вопросы