2013-10-24 33 views
1

我传递形式的字典灯泡的Neo4j更新错误

{'twitterid':121212, 'followers':[121,212323,2323,1221]} 

的功能createVertex

def createVertex(userDict): 
    vertex = g.vertices.create(twitterid=userDict['twitterid']) 
    g.vertices.update(vertex.eid, userDict) 

    while not 'followers' in list(vertex.data().iterkeys()): 
     print "trying " + str(vertex.twitterid) 

    return vertex 

它陷在while循环。我怀疑更新或种族问题有“提交”问题。有人可以建议如何解决这个问题?

谢谢

回答

1

没有竞争条件。在您提供的示例中,vertex不包含userDict,因为update()不会修改它。使用save()代替:

def createVertex(userDict): 
    vertex = g.vertices.create(twitterid=userDict['twitterid']) 

    vertex.followers = userDict['followers'] 
    vertex.save() 

    return vertex 

https://github.com/espeed/bulbs/blob/master/bulbs/element.py#L505

但是,你能做到以上所有的一步:

vertex = g.vertices.create(userDict) 

https://github.com/espeed/bulbs/blob/master/bulbs/element.py#L551