通过 CSV 文件的值更新节点的列表 属性
Update a list property of a node by values of a CSV file
我想通过 CSV 文件更新数据库中一个节点的列表 属性。节点的名称是Class
,它有两个字符串类型的属性name
和字符串列表类型的vector
。 CSV 文件有两列 nameCSV
和 vectorCSV
,有些行的 nameCSV
列具有相同的值,但 vectorCSV
列具有不同的值。所以我想通过添加 vectorCSV
的值来更新 vector
属性,当它们的对应名称相等时。我在 Cypher 中写了这个查询,但它不起作用:
load CSV WITH HEADERS FROM "file:///test2.csv" AS vector
MATCH (c:Class)
Merge( nv:CSVfile {nameCSV: vector.nameCSV,vectorCSV:vector.vectorCSV})
where c.name = nv.nameCSV
set c.vector = c.vector + nv.vectorCSV
我应该如何更改此查询以更新节点 Class
.
的列表 属性 vector
我假设 Class
节点上的 vector
属性 已经是一个数组。
LOAD CSV WITH HEADERS FROM "file:///test2.csv" AS vector
MATCH (c:Class {name: vector.nameCSV})
SET c.vector=c.vector + vector.vectorCSV
这可能会导致重复值。如果你不想重复,你可以使用 apoc.coll.union
LOAD CSV WITH HEADERS FROM "file:///test2.csv" AS vector
MATCH (c:Class {name: vector.nameCSV})
SET c.vector=apoc.coll.union(c.vector,[vector.vectorCSV])
我想通过 CSV 文件更新数据库中一个节点的列表 属性。节点的名称是Class
,它有两个字符串类型的属性name
和字符串列表类型的vector
。 CSV 文件有两列 nameCSV
和 vectorCSV
,有些行的 nameCSV
列具有相同的值,但 vectorCSV
列具有不同的值。所以我想通过添加 vectorCSV
的值来更新 vector
属性,当它们的对应名称相等时。我在 Cypher 中写了这个查询,但它不起作用:
load CSV WITH HEADERS FROM "file:///test2.csv" AS vector
MATCH (c:Class)
Merge( nv:CSVfile {nameCSV: vector.nameCSV,vectorCSV:vector.vectorCSV})
where c.name = nv.nameCSV
set c.vector = c.vector + nv.vectorCSV
我应该如何更改此查询以更新节点 Class
.
vector
我假设 Class
节点上的 vector
属性 已经是一个数组。
LOAD CSV WITH HEADERS FROM "file:///test2.csv" AS vector
MATCH (c:Class {name: vector.nameCSV})
SET c.vector=c.vector + vector.vectorCSV
这可能会导致重复值。如果你不想重复,你可以使用 apoc.coll.union
LOAD CSV WITH HEADERS FROM "file:///test2.csv" AS vector
MATCH (c:Class {name: vector.nameCSV})
SET c.vector=apoc.coll.union(c.vector,[vector.vectorCSV])