neo4j cypher конвертировать массив / список в строку - PullRequest
1 голос
/ 12 февраля 2020

Один тип ребер в моем графе имеет свойство, называемое role . Это массив / список строк. Это как ["Bill Smoke", "Haskell Moore", "Tadeusz Kesselring", "Nurse Noakes", "Boardman Mephi", "Old Georgie"]

Как я могу преобразовать это в строку? Я хочу присоединиться к ним. С JS я могу сделать ['asd', '1', '2'].join(''). Я хочу подобную функциональность внутри Cypher

Ответы [ 3 ]

1 голос
/ 12 февраля 2020
WITH ["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
1 голос
/ 12 февраля 2020
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 -reduce

0 голосов
/ 12 февраля 2020

APO C Процедуры имеет поддержку нескольких категорий вспомогательных функций, включая эту.

При установке вы можете использовать apo c .text.join () для получения желаемого результата:

WITH ["Bill Smoke", "Haskell Moore", "Tadeusz Kesselring", "Nurse Noakes", "Boardman Mephi", "Old Georgie"] as list
RETURN apoc.text.join(list, ' ') as string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...