2017-05-26 60 views
1

在py2neo V2.0,這是可以使用的交易執行Cypher支架聲明:如何CYPHER查詢組合成Py2neo V3交易

tx=graph.cypher.begin() 
tx.append("MERGE (n:Process {proc_nm : {proc_nm}}) ON CREATE SET n.count = 1 ON MATCH SET n.count = n.count +1", {proc_nm : 'wibble'}) 
tx.commit 

當處理複雜文件,這使得非常快的更新是對於Neo4J數據庫。

在py2neo V3.0的語法已更改爲:

graph.run(("MERGE (n:Process {proc_nm : {proc_nm}}) ON CREATE SET n.count = 1 ON MATCH SET n.count = n.count +1", {proc_nm : 'wibble'})) 

這意味着,我可以單獨運行暗號聲明,但性能需要巨大打擊。我可以爲節點和關係編寫CREATE/MERGE,但是我希望不必重寫一堆我已經使用的例程。我錯過了什麼?

回答

2

在py2neo v3中,你仍然可以使用Transaction,但API已經改變了一下。

在你的示例代碼,你現在必須:

  • 使用graph.begin,而不是graph.cypher.begin
  • 使用tx.run而不是tx.append

這種模式應該在V3的工作:

tx=graph.begin() 
tx.run(" ... Cypher statement 1 ... ", { ... }) 
tx.run(" ... Cypher statement 2 ... ", { ... }) 
tx.run(" ... Cypher statement 3 ... ", { ... }) 
tx.commit() 
+0

謝謝您的幫助。不勝感激。 –

+0

太好了。請記住在接受問題時最好地幫助你的[接受答案](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – cybersam