Python py2neo graph.merge()的行为与Cypher merge不同?

Python py2neo graph.merge()的行为与Cypher merge不同?,python,merge,neo4j,cypher,py2neo,Python,Merge,Neo4j,Cypher,Py2neo,因此,对于空数据库MERGE(N1:A{name:“A”})-[:r]>(N2:B{name:“B”})将创建两个节点N1和N2,它们之间有一条边r。但是,下面的python代码没有做到这一点。。。但是为什么呢?难道不是吗 from py2neo import Graph, authenticate, rel, Node graph = Graph() # set up authentication parameters authenticate("localhost:7474", <

因此,对于空数据库
MERGE(N1:A{name:“A”})-[:r]>(N2:B{name:“B”})
将创建两个节点
N1
N2
,它们之间有一条边
r
。但是,下面的python代码没有做到这一点。。。但是为什么呢?难道不是吗

from py2neo import Graph, authenticate, rel, Node

graph = Graph()

# set up authentication parameters
authenticate("localhost:7474", <user>, <password>)

# clear the data base
graph.delete_all()

graph.merge(rel(Node("A" , name="A"), "r", Node("B" , name="B")))
从py2neo导入图,验证,rel,节点
图=图()
#设置身份验证参数
验证(“本地主机:7474”)
#清除数据库
graph.delete_all()
图.合并(rel(节点(“A”,name=“A”),“r”,节点(“B”,name=“B”))
运行该脚本会导致数据库仍然为空。这是为什么?我如何从py2neo中获得Cypher合并行为,而不使用
graph.Cypher.execute(“merge…”)

在py2neo中,通过标签和(可选)属性匹配或创建单个节点,您希望在其中合并整个模式(节点、关系、其他节点)


Cypher
MERGE
语句使用的模式在Cypher之外的Py2neo中似乎不受支持。

下面是一个如何合并两个节点关系的示例

from py2neo import Graph, authenticate, Relationship, Node

server = "localhost:7474"

# set up authentication parameters
authenticate(server, <user>, <password>)

graph = Graph("{0}/db/data".format(server))

# merge nodes and relationship
node1 = Node("A", name="A")
node2 = Node("B", name="B")
node1_vs_node2 = Relationship(node1, "r", node2)
graph.merge(node1_vs_node2)
从py2neo导入图形、身份验证、关系、节点
server=“localhost:7474”
#设置身份验证参数
验证(服务器,)
graph=graph(“{0}/db/data.”格式(服务器))
#合并节点和关系
node1=节点(“A”,name=“A”)
node2=节点(“B”,name=“B”)
node1\u vs\u node2=关系(node1,“r”,node2)
图.合并(节点1与节点2)
结果是: