2012-11-30 43 views
5

我試圖做調用一個暗號查詢(在Java)的參數傳遞參數做這樣的事情:Neo4j的使用數組或集合作爲暗號查詢

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. 分隔字符串,如「‘喬吹’,‘吹喬’」

我真的以爲是最後一個會工作,但我覺得參數被替換爲一個字符串,即[ 「'喬吹','吹喬'」]而不是['喬吹','吹喬']。我通過傳遞一個值證明了這一點,而且這一點起作用。 我試圖通過代碼追蹤,但在scala中迷路了。

任何其他選項,想法?

乾杯

回答

9

應該更好地工作,如果你IN關鍵字後刪除方括號,並使用一個集合作爲參數。

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

您的冠軍,作品描述。謝謝。 – sverze