我的图表中的一种类型的边缘具有名为roles的属性。它是一个包含字符串的数组/列表,类似于["Bill Smoke", "Haskell Moore", "Tadeusz Kesselring", "Nurse Noakes", "Boardman Mephi", "Old Georgie"]
我该如何将其转换为字符串?我想要将它们连接起来。在JS中,我可以使用['asd', '1', '2'].join('')
。我希望在cypher中也能实现类似的功能。
APOC Procedures 支持多种类别的辅助函数,其中包括本文提到的函数。
安装后,您可以使用apoc.text.join()来获得所需的结果:
WITH ["Bill Smoke", "Haskell Moore", "Tadeusz Kesselring", "Nurse Noakes", "Boardman Mephi", "Old Georgie"] as list
RETURN apoc.text.join(list, ' ') as string
WITH REDUCE(mergedString = "",word IN ["Bill Smoke", "Haskell Moore", "Tadeusz Kesselring", "Nurse Noakes", "Boardman Mephi", "Old Georgie"] | mergedString+word+',') as joinedString
RETURN LEFT(joinedString,SIZE(joinedString)-1)
REDUCE函数就是你要找的基本功能。
https://neo4j.com/docs/cypher-manual/current/functions/list/#functions-reduceWITH ["Bill Smoke", "Haskell Moore", "Tadeusz Kesselring", "Nurse Noakes", "Boardman Mephi", "Old Georgie"] AS array,
';' AS separator
RETURN REDUCE(mergedString = "",item IN array |
mergedString
+ CASE WHEN mergedString='' THEN '' ELSE separator END
+ item) AS mergedString