NEO4J使用数组或集合作为密码查询中的参数

sve*_*rze 6 java graph neo4j cypher

我试图调用一个cypher查询(在java中)传递参数来做类似的事情:

WHERE node.property IN [{param}]
Run Code Online (Sandbox Code Playgroud)

完整示例:

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

对于我尝试使用以下参数:

  1. 包含字符串的集合
  2. 包含字符串的数组
  3. 定界字符串如"'Joe Blow','Blow Joe'"

我真的认为最后一个会工作,但我认为参数被替换为单个字符串,即["'Joe Blow','Blow Joe'"]而不是['Joe Blow','Blow Joe'].我通过传递一个值证明了这一点,这是有效的.我试过跟踪代码,但在scala中丢失了.

还有其他选择吗?

干杯

Wer*_*rås 10

如果在IN关键字后删除方括号,并使用集合作为参数,它应该更好.

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