如何将密码查询组合到 Py2neo v3 中的事务中
How to combine cypher queries into a transaction in Py2neo v3
在py2neo v2.0中,可以使用事务来执行Cypher语句:
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'}))
这意味着我可以 运行 单独使用 cypher 语句,但性能会受到很大影响。我可以为节点和关系编写 CREATE/MERGE,但是我希望不必重新编写我已经在使用的一堆例程。我错过了什么?
在 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()
在py2neo v2.0中,可以使用事务来执行Cypher语句:
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'}))
这意味着我可以 运行 单独使用 cypher 语句,但性能会受到很大影响。我可以为节点和关系编写 CREATE/MERGE,但是我希望不必重新编写我已经在使用的一堆例程。我错过了什么?
在 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()