2016-12-01 2 views
1

트랜잭션의 일부로 py2neo를 사용하여 노드를 갱신하려고합니다.py2neo 트랜잭션을 사용하여 노드 특성을 변경하십시오.

문제는 과 같은 Graph.push()과 같은 것을 찾을 수없는 것입니다. 나는 명백한 것을 놓치고 있는가?

내 코드는 다음과 같습니다. 명백한 ???? 비트를 해결하고 싶습니다. 이 작업의 1000에 대한 빠른 실행 표시하기 때문에 사용의 경우 포인트로

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) 

, 나는 내가 롤백 기능이 필요하지 때문에, 트랜잭션을 사용하고 있습니다.

답변

0

귀하의 전체 메소드 본문이 트랜잭션 내에서 해당 사이퍼 문 실행 다음으로 대체 할 수 있습니다

t.run(
    "MERGE (n:Node {name: {name}}) SET n.size = {size}", 
    {"name": self.name(), "size": self.get_size()} 
); 
관련 문제