如何使用py2neo创建唯一的节点

3
假设我需要创建一个唯一的节点,使用email进行标识。如果我运行以下代码,则会创建两个具有相同email的节点。
person_nod = Node("person", email="bob123@gmail.com")
graph.create(person_nod)

person_nod = Node("person", email="bob123@gmail.com")
graph.create(person_nod)

我不知道如何使用 neo4j 避免重复的节点。
1个回答

9
首先,如果你想要唯一的节点,你应该在标签 person 和属性 email 上创建一个唯一性约束:
graph = Graph()
graph.schema.create_uniqueness_constraint('person', 'email')

如果您尝试添加违反唯一性约束的节点,将会收到错误提示。也就是说,第二个创建语句将失败。

您还可以合并节点而不是创建它。`MERGE`会匹配现有节点或在它们不存在时创建它们:

person_node = graph.merge('person', property_key='email', property_value='email@email.com')

有关合并,请参见:http://py2neo.org/2.0/essentials.html#py2neo.Graph.merge


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接