因此,对于一个空数据库,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语句的模式.