我怎么能用py2neo创建唯一的节点

时间:2015-06-02 11:07:51

标签: neo4j py2neo

假设我需要使用电子邮件创建唯一节点,

如果我运行以下代码,它将使用相同的电子邮件

创建2个节点
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 个答案:

答案 0 :(得分:5)

首先,如果您想要唯一节点,则应在标签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