投出海量属性 N​​eo4j

问题描述

我有一组属性的 Neo4j 关系:['PROPERTY1','PROPERTY2',PROPERTY3',...]。我使用下面的方法字符串转换为 int。

我应该将所有属性字符串转换为整数。什么是铸造大量属性的有效方法

        CALL apoc.periodic.commit(
        "MATCH ()-[r:RELATED_TO]->()
        WHERE r.PROPERTY1 = toString(r.PROPERTY1)
        WITH r LIMIT $limit 
        set r.PROPERTY1 = toInteger(r.PROPERTY1)                   
        RETURN count(*)",{limit : 5000})

解决方法

您可以将属性列表作为参数传递并使用 FOREACH 对其进行迭代。可以动态访问属性 (dynamic property)。

propList: ['PROPERTY1','PROPERTY2','PROPERTY3']
MATCH ()-[r:RELATED_TO]->()

FOREACH (prop IN $propList |
  SET r[prop] = toInteger(r[prop])
)