2013-05-27 40 views
0

我想作以下的Cypher查詢:Py2Neo:Cypher支架查詢

start me = node:actors(actor = 'Tom Baker') , you = node:actors(actor = 'Peter Davison') match p = you-[*1..3]-me return p 
使用在Neo4j的網站上提供的數據集Dr.Who

。它在Neo4j控制檯中給出正確的結果以及Py2Neo中的正確結果。但是現在我想以這樣的方式進行查詢,以便使用變量x和y進行相同的查詢。但是我不知道Py2Neo的轉義序列。我試過以下查詢

"start me = node:actors(actor = \'.x.\') , you = node:actors(actor = \'.y.\') match p = you-[*1..3]-me return p" 

但它沒有工作。任何幫助,將不勝感激。

回答

4

嘗試使用參數,而cypher中的命名參數是{name},並且您將哈希/字典與名稱 - 值對一起傳遞給查詢。

start me = node:actors(actor = {me}) , 
you = node:actors(actor = {you}) 
match p = you-[*1..3]-me 
return p 

params: {"me":"Tom Baker","you":"Peter Davison"} 
+0

要在Cypher查詢字符串中嵌入值,您需要使用'%'語法或字符串格式(http://docs.python.org/2/library/string.html#format -string-語法)。也就是說,邁克爾的答案比這兩者都好得多,並且會避免奇怪的引用問題。參數可以作爲cypher.execute的字典參數傳遞(http://book.py2neo.org/en/latest/cypher.html#py2neo.cypher.execute)。 –

+0

感謝您的幫助 – user2419305