Neo4j使用当前属性值的正则表达式重命名属性

时间:2014-06-06 17:43:46

标签: neo4j cypher

从我的研究(很多谷歌搜索),我看不出这是可能的,但我认为仍然值得问。我有很多节点,如:

(org:Organization {name: "Organization 1234"})

其中1234可以是任何非负整数。

为了更新数据库以使用新的API,我想重命名集合中的每一个,以便结果看起来像:

(org:Organization {name: "Org_1234"})

所以,我需要在当前属性上使用[0-9] +正则表达式匹配来混搭Org_。

真的,我甚至不知道从哪里开始。我在文档中看到的只是正则表达式可以用作WHERE子句(WHERE n.property =~ {regex})中的谓词。有没有一种方法只使用Cypher,因为我没有使用Java库?

1 个答案:

答案 0 :(得分:5)

假设“组织”和整数之间总是有一个空格,你可以用字符串函数很容易地强制使用它。

CREATE (:Organization {name:'Organization 1234'}), 
       (:Organization {name:'Organization 5678'})

MATCH (o:Organization)
WITH o, SPLIT(o.name, " ")[1] AS id
SET o.name = "Org_" + id
RETURN o.name

返回

o.name
Org_1234
Org_5678