我有两个文件。第一个文件包含具有特定属性的用户列表。我已将它们加载到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]
任何建议都会非常有用。
答案 0 :(得分:0)
[增订]
你可以这样做:
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
属性尚不存在,则使用单个元素列表初始化该属性)。 COALESCE
函数返回第一个非NULL的参数。