假设我需要使用电子邮件创建唯一节点,
如果我运行以下代码,它将使用相同的电子邮件
创建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
来避免重复的节点答案 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