【问题标题】:Transactions using neomodel使用新模型的交易
【发布时间】:2016-02-19 07:10:41
【问题描述】:

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

@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 中的事务可以做什么,不能做什么?

【问题讨论】:

    标签: python neo4j py2neo neomodel


    【解决方案1】:
    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()
    

    【讨论】:

    • 答案必须是正确的解决方案,而不是几乎可以解决的问题。谢谢
    猜你喜欢
    • 2012-09-22
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多