2015-06-02 4 views
1

Предположим, что мне нужно, чтобы создать уникальный узел с электронной почты,Как я мог бы создать уникальный узел с py2neo

Если я запускаю следующий код, он будет Creat 2 узла с тем же электронной почты

person_nod = Node("person", email="[email protected]") 
graph.create(person_nod) 

person_nod = Node("person", email="[email protected]") 
graph.create(person_nod) 

Я понятия не имею, как избежать дублированный узел с Neo4j

ответ

4

Во-первых, если вы хотите, уникальные узлы, вы должны создать уникальность ограничение на этикетке person и собственности email:

graph = Graph() 
graph.schema.create_uniqueness_constraint('person', 'email') 

Теперь вы получите сообщение об ошибке, если вы пытаетесь добавить узел, который нарушает ограничение уникальности. То есть ваш второй оператор создания не удастся.

Вы также можете объединить узел вместо его создания. MERGE соответствует существующим узлам или создает их, если они не существуют:

person_node = graph.merge('person', property_key='email', property_value='[email protected]') 

Для слияния смотрите: http://py2neo.org/2.0/essentials.html#py2neo.Graph.merge