【问题标题】:Neo4j Cypher update node dynamic propertiesNeo4j Cypher 更新节点动态属性
【发布时间】:2018-04-21 20:51:25
【问题描述】:

我有以下 Neo4j 节点:Value。每个Value 节点可以具有以下格式的0..N 属性:

Value1 node properties:
    property.1 = 123
    property.23 = 1
    property.452 = 5

Value2 node properties:
    property.45 = 90
    property.4 = 7

...

ValueN node properties:
    property.12 = 2
    property.46 = 17
    property.101 = 32
    property.3000 = 84

我不知道每个 Value 节点的这些属性的特定数量,但在 Cypher 查询期间,我需要更新所有这些属性。

我需要编写 Cypher 查询,该查询将更新数据库中的所有 Value 节点并递增每个 Value.property.X +1 的每个值。

请注意,Value 节点还可以包含其他属性,但我只需要以上述格式更新属性:property.X 其中X 可以是任意数字。

请说明如何做到这一点。

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    试试类似的东西

    MATCH (n:Node)
    UNWIND keys(n) as key
    WITH n,key where key contains 'property.'
    SET n['key'] = n['key'] + 1
    

    【讨论】:

    • 感谢您的回答。我很抱歉,但我忘了提到 Value 节点还可以包含其他属性,但我只需要以上述格式更新属性:property.X 其中X 可以是任何数字
    • 这在新版本中仍然有效吗?我收到语法错误