其他分享
首页 > 其他分享> > py2neo graph.merge()的行为与Cypher MERGE不同吗?

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

作者:互联网

因此,对于一个空数据库,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")))

运行该脚本将导致数据库仍然为空.为什么会这样,又如何不使用graph.cypher.execute(“ MERGE …”)从py2neo中获得Cypher合并行为?

解决方法:

在Py2neo中,graph.merge通过标签和(可选)属性来匹配或创建单个节点,在此您希望在整个模式(节点,关系,其他节点)上进行合并.

Cypher外部的Py2neo中似乎不支持您用于Cypher MERGE语句的模式.

标签:py2neo,neo4j,cypher,python,merge
来源: https://codeday.me/bug/20191027/1942755.html