我正在尝试使用py2neo更新节点作为事务的一部分。
问题是我似乎无法找到Graph.push()
的等效内容,例如Transaction.Push()
。我错过了一些明显的东西吗?
我的代码目前看起来像这样,我想解决明显的????
位。
def write_to_database( self, t: Transaction ) -> None:
n = None
use_existing = False
# Not part of the transaction:
n = t.graph.find_one( "Node", "name", self.name( ) )
if n:
use_existing = True
else:
n = Node(label)
n[ "name" ] = self.name( )
n["size"] = self.get_size()
if use_existing:
t.??????????????? # Put this in the transaction!
else:
t.create( n )
作为一个用例点,我正在使用该事务,因为它似乎在1000次操作中运行得更快,而不是因为我需要回滚功能。
答案 0 :(得分:0)
您的整个方法体可以替换为以下内容,它在事务中运行等效的Cypher语句:
t.run(
"MERGE (n:Node {name: {name}}) SET n.size = {size}",
{"name": self.name(), "size": self.get_size()}
);