Neo4j: вычитание между массивами со строковыми элементами

У меня есть два следующих массива:

 x=[red,blue,green,yellow,black,white,pink,orange,brown]
 y=[blue,white,pink]

Как я могу получить следующий вывод, используя Cypher?

 z=[red,,green,yellow,black,,,orange,brown]

Мне нужно иметь массив с тем же размером массива x и элементами в том же порядке, но когда есть общие элементы с массивом y, мне нужно иметь пустые элементы.


person raf    schedule 08.04.2020    source источник


Ответы (1)


Вы можете использовать понимание списков .

Например, этот запрос:

WITH
  ["red","blue","green","yellow","black","white","pink","orange","brown"] AS x,
  ["blue","white","pink"] AS y
RETURN [i IN x | CASE WHEN i IN y THEN "" ELSE i END] AS result

возвращает:

╒══════════════════════════════════════════════════════════╕
│"result"                                                  │
╞══════════════════════════════════════════════════════════╡
│["red","","green","yellow","black","","","orange","brown"]│
└──────────────────────────────────────────────────────────┘
person cybersam    schedule 08.04.2020