https://raw.githubusercontent.com/saurabhkumar1903/neo4j/master/alterFile/sampletestoutput1.csv
这是指向显示我的预期输出的图片的链接:[https://i.imgur.com/x6CYdfU.jpg]我已将其绘制在纸上以显示预期的输出。
[我有一个包含节点列表的csv文件,其中每一行表示第[0]行节点与节点行2,行2,行[3]的每个其他列表的关系] .....行[4500]在该行]
例如。 -1,3,4,5,7,8-
Create procedure [dbo].[sp_item_alreadyex]
@catname nvarchar(50),
@proname nvarchar(50)
as
begin
select *
from Item
where Item_Name = @proname and Category = @catname
end
此处节点位于
2,4,5,11
4,10,11,15
我想要做的是我想在neo4j中显示每个节点之间建议的朋友关系的图表。
我无法弄清楚如何迭代整个csv文件以及捕获csv文件每行上每个节点之间的关系。
答案 0 :(得分:0)
如果您想确保HAS_FRIEND
首先出现在id
之内的人与之后出现ids的人(line
之间存在line
关系这样的事情应该有效:
LOAD CSV FROM 'file:///friends.csv' AS line
MERGE (p:Person {id: TOINT(line[0])})
FOREACH(id IN line[1..] |
MERGE(f:Person {id: TOINT(id)})
MERGE (p)-[:HAS_FRIEND]-(f))
此查询假定您只希望任意2个节点之间存在单个HAS_FRIEND
关系。因此,关系的MERGE
不指定方向。这样,如果在 方向上已存在这样的关系,则不会创建新的关系。
此外,TOINT
函数用于将id值转换为整数(因为LOAD CSV
会自动将所有值视为字符串)。如果您不需要该转换,则可以删除函数调用。