使用neomodel的交易

时间:2016-02-19 07:10:41

标签: python neo4j py2neo neomodel

根据文档中的内容,可以使用以下内容:

@db.transaction
def update_user_name(uid, name):
    user = Person.nodes.filter(uid=uid)[0]
    user.name = name
    user.save()

但是如何创建一个更复杂的节点(如此)然后创建另一个节点,在它们之间创建一个关系,并在同一个事务中的某个地方从其中一个节点读取该关系。我的意思是这个库没有提交可以做什么?我的意思是通常,使用普通的py2neo我将无法做到这一点,因为使用 CreateStatement 创建的任何节点都是绑定的,它是它的事务API的核心部分。它只能在提交或处理事务后查询,但我不确定后者。 Neomodel应该能够做更多的事情,因为它以某种方式包装这些节点并缓存事物 - 但我不能确定 - 事务的描述非常短。

有很多代码需要重新实现,所以我需要确定。你有什么经历?在py2neo / neomodel中的事务方面可以做什么和不能做什么?

1 个答案:

答案 0 :(得分:0)

from neomodel import db
from demo import A, B


def build_graph():
    db.begin()

    try:
        new_a = A(a_unique_id="AKLKSAJDAD").save()
        new_b = B(b_unique_id="asdawdaw").save()
        new_b.Hates.connect(new_a)
    except:
        return -1

    for rel in new_b.Hates.all():
        print(rel)

    db.commit()