我需要生成一个密码查询,我应该根据另一个属性的值设置一个属性的值,如下所示:
MATCH (n) SET n.XXX = n.YYY return n;
因此XXX将设置为YYY。但是YYY有这样的价值 - " ABCD.net/ABC-MNO-XYZ-1234"我应该删除所有特殊字符(/, - etc),然后连接分裂的子字符串。所以逻辑陈述应该像 -
MATCH (n) SET n.XXX = CONCAT(SPLIT(n.YYY, "/")) return n;
Neo4j没有任何CONCAT功能。那么如何在密码查询中完成这些工作呢?
任何帮助都将受到高度赞赏。
由于
答案 0 :(得分:2)
你可以这样做:
MATCH (n:SomeNode) set n.uuid = reduce(s="",x in split(n.uuid,'/')| s+x)
并为每个特殊字符运行此查询。
如果有很多特殊字符,请写下此查询:
UNWIND ['/','@'] as delim match (n:SomeNode) set n.uuid = reduce(s="",x in split(n.uuid,delim)| s+x)
替换' /',' @'列出你的特殊字符。
答案 1 :(得分:1)
你的用例看起来好像要删除字符串中的字符,而neo4j确实提供了一个replace()函数,你可以利用它。
但是如果您确实想要一个join(),APOC Procedures库会在它提供的text functions中有这个。