问题描述
我有一组属性的 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])
)