NEO4J использование массива или коллекции в качестве параметра в запросе cypher

Я пытаюсь вызвать запрос шифрования (в java), передающий параметры, чтобы сделать что-то вроде:

WHERE node.property IN [{param}]

полный пример:

START person=node:persons('Name:*')
MATCH person->[:Girl]->friend
WHERE person.Name IN [{Names}] AND friend.Hair = 'Blond'
RETURN person.Name, friend.Name

для параметра я попытался использовать следующее:

  1. коллекция, содержащая строки
  2. массив, содержащий строки
  3. строка с разделителями типа "'Joe Blow', 'Blow Joe'"

Я действительно думал, что последний будет работать, но я думаю, что параметр заменяется как одна строка, т. е. ["Джо удар", "удар Джо"], а не ["Джо удар", "удар Джо"]. Я доказал это, передав одно значение, и это сработало. Я попытался отследить код, но заблудился в scala.

любые другие варианты, мысли?

Ура

1 ответов


он должен работать лучше, если вы удалите квадратные скобки после ключевого слова IN и используете коллекцию в качестве параметра.

START person=node:persons('Name:*')
MATCH person->[:Girl]->friend
WHERE person.Name IN {Names} AND friend.Hair = 'Blond'
RETURN person.Name, friend.Name