Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
neo4j-更改节点属性_Neo4j_Social Networking_Py2neo - Fatal编程技术网

neo4j-更改节点属性

neo4j-更改节点属性,neo4j,social-networking,py2neo,Neo4j,Social Networking,Py2neo,我正在尝试建立一个社交网络,这是我的第一次网络体验。 我正在使用Neo4j数据库和py2neo模块。 现在我想从数据库中找到一个节点,并更改它的一些属性。 我正在使用下面的代码,我可以运行它没有错误。但它不会改变我数据库中的任何东西,我也不知道为什么。。。 如果可以的话,请帮助我 from py2neo import Graph graph=Graph() def edit_name(Uname,name): person=graph.merge_one("Person","username",

我正在尝试建立一个社交网络,这是我的第一次网络体验。 我正在使用Neo4j数据库和py2neo模块。 现在我想从数据库中找到一个节点,并更改它的一些属性。 我正在使用下面的代码,我可以运行它没有错误。但它不会改变我数据库中的任何东西,我也不知道为什么。。。 如果可以的话,请帮助我

from py2neo import Graph
graph=Graph()
def edit_name(Uname,name):
person=graph.merge_one("Person","username",Uname)
person.cast(fname=name)

merge\u one
将返回匹配节点,或者,如果不存在匹配节点,则创建并返回新节点。因此,在您的例子中,匹配的节点可能已经存在。

Cast用于将一般Python对象强制转换为py2neo对象。例如,如果要将Python字典强制转换为py2neo节点对象,则需要执行以下操作:

from py2neo import Graph, Node
graph = Graph()

d = {'name':'Nicole', 'age':24}
nicole = Node.cast('Person', d)
但是,您仍然需要将
nicole
传递到
Graph.create
以实际在数据库中创建节点:

graph.create(nicole)
然后,如果以后使用
Graph.merge\u one
从数据库中检索此节点并要更新属性:

nicole = graph.merge_one('Person', 'name', 'Nicole')
nicole['hair'] = 'blonde'
然后,您需要
将这些更改推送到图形中
cast
不适用于更新已经是py2neo
节点的对象的属性:

nicole.push()
TL;博士:

from py2neo import Graph
graph = Graph()

def edit_username(old_name, new_name):
    person = graph.merge_one('Person', 'username', old_name)
    person['username'] = new_name
    person.push()

是的,它存在。当我返回节点时,它会正确返回。但是“person.cast(fname=name)”不能正常工作