2012-11-30 5 views
5

Io sto cercando di fare chiamare una query CYPHER (in java) passando i parametri per fare qualcosa di simile:Neo4j utilizzando un array o raccolta come parametro nella query cifra

WHERE node.property IN [{param}] 

esempio completa:

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

Per il parametro ho provato con le seguenti:

  1. Collection contenente le stringhe
  2. matrice contenente le stringhe
  3. stringa delimitata come " 'Joe Blow', 'Colpo Joe'"

ho davvero pensato l'ultimo avrebbe funzionato, ma penso che il parametro è stato sostituito come una singola stringa cioè [ "'Joe Blow', 'Blow Joe'"] e non ['Joe Blow', 'Blow Joe']. L'ho dimostrato passando di un valore, e questo ha funzionato. Ho provato a tracciare il codice ma mi sono perso in scala.

Altre opzioni, pensieri?

Acclamazioni

risposta

9

dovrebbe funzionare meglio se si rimuove le parentesi quadre dopo la parola chiave IN, e di utilizzare una collezione come parametro.

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

Sei campione, lavora come descritto. grazie. – sverze

Problemi correlati