2017-06-23 27 views
2

我与形式的不同标签的各个节点:转换所有属性的所有值较低的情况下,Neo4j的

(n:Label) 
n.Name='ABS' 
n.sample='ajx' 

我想改变这一切的属性值,以小写。即对上述结果应该是:

(n:Label) 
n.Name='abs' 
n.sample='ajx' 

我曾尝试以下...

match(n:Label) SET n.Name`=toLower(n.Name) 

但这个查询只更新属性一次一个。有没有办法在单个查询中同时更改所有属性。

+0

那么你有没有尝试过什么? –

+0

我试图通过1获得属性1,但这是乏味的,所以想知道他们是否是一个更聪明的查询。 – pHM

+1

您应该提及您在帖子中尝试的查询。 –

回答

3

你可以在APOC procedures的帮助下完成。具体apoc.create.setProperty程序。此查询应该有效:

MATCH (n) 
WITH n, [x IN keys(n) 
     WHERE n[x] =~ '.*' 
] as props 
UNWIND props as p 
CALL apoc.create.setProperty(n, p, toLower(n[p])) YIELD node 
RETURN node 

此查询匹配您图的所有节点并获取每个节点的字符串属性。在它之后apoc.create.setProperty被称为每个属性作为新值toLower(node[property])传递。

+0

谢谢!奇迹般有效! – pHM

相关问题