LOAD CSV WITH HEADERS FROM 'http://127.0.0.1/static/relations/252.csv' AS line
MATCH (a:ip{value:line.userIp}),(b:email{value:line.ucEmail})
MERGE (a)-[rel:mayrelations]->(b)
WITH rel, COALESCE(rel.spendTime, []) + line.spendTime AS spendTime
UNWIND spendTime as r0
WITH rel, collect(distinct r0) AS unique
set rel.spendTime= unique
WITH rel, COALESCE(rel.eventOccurTime, []) + line.eventOccurTime AS eventOccurTime
UNWIND eventOccurTime as r1
WITH rel, collect(distinct r1) AS unique
set rel.eventOccurTime= unique
此语法不起作用,并引发错误:“未定义变量line
”,我认为这意味着'line'变量只能使用一次。如何使用两次?
答案 0 :(得分:0)
您必须将line
变量添加到WITH
语句中:
如果您选中official docs,则可以看到以下说明:
请务必注意,WITH会影响作用域中的变量。任何 WITH子句中未包含的变量不会被带到 查询的其余部分。
从'http://127.0.0.1/static/relations/252.csv'AS行加载带标题的CSV文件
匹配(a:ip {value:line.userIp}),(b:email {value:line.ucEmail})
合并(a)-[rel:mayrelations]->(b)
WITH line,rel,COALESCE(rel.spendTime,[])+ line.spendTime AS消费时间
UNWIND花时间为r0
WITH line,rel,collect(distinct r0)为唯一
设置rel.spendTime =唯一
与rel,COALESCE(rel.eventOccurTime,[])+ line.eventOccurTime AS eventOccurTime UNWIND eventOccurTime as r1 使用rel,以唯一的方式收集(distinct r1) 设置rel.eventOccurTime =唯一