参数查询其中内容确定已分配的属性名称和属性值

时间:2016-12-20 23:08:46

标签: neo4j cypher

我从MySQL数据库的select查询中提取了两个值。第一个包含属性名称,第二个包含属性的值。

是否有办法使用参数将值分配给第一个字段中的名称,例如

在行中设置名称.Property_Name = row.Property_Value

2 个答案:

答案 0 :(得分:1)

仅使用Cypher无法执行此操作:n[name]语法允许您read但不能使用动态名称编写属性。

但是,您可以使用APOC程序执行此操作,即使文档中当前缺少该程序:apoc.create.setProperty()。它位于APOC的3.03.1分支中,因此您可以使用任何Neo4j 3.x实例。

CALL apoc.create.setProperty(n, row.Property_Name, row.Property_Value)

答案 1 :(得分:1)

如果您可以将这些键/值对更改为地图,则可以在节点上设置它们。

如果map已更改为参数,则语法对于节点列n:

看起来像这样
SET n += $map

您可能需要查看文档中的SET clause