无法为每个节点创建属性列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法为每个节点创建属性列表相关的知识,希望对你有一定的参考价值。
我有两个文件。第一个文件包含具有特定属性的用户列表。我已将它们加载到Neo4j中,如下所示:
USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///users.csv" AS row
CREATE (U:User{userid:row.userid, username:row.username})
现在,我有第二个文件,其中包含用户留下或曾经住过的地方的密码。示例:用户Pincodes
A 001
B 002
A 003
我想在标签User中添加一个属性,以便将所有pincodes添加为列表。但是当我使用下面的查询时,它只存储最新的值而不是所有值作为列表。
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///user_pincode.csv" AS line
MATCH (U:User)
WHERE U.userid=line.userid
SET U.pincode=[line.pincode]
任何建议都会非常有用。
答案
[更新]
你可以这样做:
USING PERIODIC COMMIT 1000
LOAD CSV FROM "file:///user_pincode.csv" AS line
MATCH (u:User)
WHERE u.userid=line[0]
SET u.pincode = COALESCE(u.pincode, []) + line[1]
由于您的CSV数据没有标题,因此此查询省略了WITH HEADERS
选项,并将line
视为数组。它将新的pincode附加到现有pincode
列表的末尾(或者,如果pincode
属性尚不存在,则使用单个元素列表初始化该属性)。 COALESCE
函数返回第一个非NULL的参数。
以上是关于无法为每个节点创建属性列表的主要内容,如果未能解决你的问题,请参考以下文章