Merge 理解Py2neo上的合并存在问题

Merge 理解Py2neo上的合并存在问题,merge,neo4j,py2neo,Merge,Neo4j,Py2neo,我想在py2neo v3中创建两个不同类型的现有节点之间的关系,这只能通过使用Cypher执行来实现,还是有一个函数(可能是merge)可以实现这一点 例如 问题是,如果alice有很多朋友,我会提前创建他们,因为他们在字典中有我想要的各种其他属性,并且已经循环并创建了节点,那么我如何在不创建其他alice的情况下将alice与这些朋友连接起来?我认为合并会起作用,但我不理解它的语法。V3也给了我一些适合的东西,还没有例子。这就是我的工作。 要使合并生效,您需要设置唯一约束。我不使用py2neo

我想在py2neo v3中创建两个不同类型的现有节点之间的关系,这只能通过使用Cypher执行来实现,还是有一个函数(可能是merge)可以实现这一点

例如


问题是,如果alice有很多朋友,我会提前创建他们,因为他们在字典中有我想要的各种其他属性,并且已经循环并创建了节点,那么我如何在不创建其他alice的情况下将alice与这些朋友连接起来?我认为合并会起作用,但我不理解它的语法。

V3也给了我一些适合的东西,还没有例子。这就是我的工作。 要使合并生效,您需要设置唯一约束。我不使用py2neo设置数据库约束。下面是在数据库上运行一次的cypher命令

在Neo4j中运行一次的密码(如果使用浏览器,也可以一次运行一个)

应用程序的Python代码

from py2neo import Graph,Node,Relationship,authenticate
n1 = Node("Role",name="Manager")
n2 = Node("Person",name="John Doe")
n2['FavoriteColor'] = "Red" #example of adding property
rel = Relationship(n2,"hasRoleOf",n1) #n2-RelationshipType->n1
graph = Graph()
tx = graph.begin()
tx.merge(n1,"Role","name") #node,label,primary key
tx.merge(n2,"Person","name") #node,label,pirmary key
tx.merge(rel)
tx.commit()
CREATE CONSTRAINT ON (r:Role)
ASSERT r.name IS UNIQUE

CREATE CONSTRAINT ON (p:Person)
ASSERT p.name IS UNIQUE
from py2neo import Graph,Node,Relationship,authenticate
n1 = Node("Role",name="Manager")
n2 = Node("Person",name="John Doe")
n2['FavoriteColor'] = "Red" #example of adding property
rel = Relationship(n2,"hasRoleOf",n1) #n2-RelationshipType->n1
graph = Graph()
tx = graph.begin()
tx.merge(n1,"Role","name") #node,label,primary key
tx.merge(n2,"Person","name") #node,label,pirmary key
tx.merge(rel)
tx.commit()