安装了最新版的py2neo使用的时候,发现merge报错了,说没有提供两个关键字参数,在代码中用法如下:
user = Node("User", name=user)
repo = Node("Repo", name=repo)
rel = Relationship(user, rel_type, repo)
g.merge(rel)
网上查了下基本都是这样的用法,于是怀疑是不是版本方面的问题,经过尝试发现版本3.0是可以的。
所以如果有需要可以重装一下py2ney即可。
新版merge如何使用?
先看看官方文档怎么描述的:https://py2neo.org/2020.0/database/work.html#py2neo.database.work.Transaction.merge
更新后的merge函数有三个参数:subgraph,primary_label,primary_key。
这里subgraph可以是节点也可以是关系,也可以是个复杂的图。
merge会根据后面的两个参数:primary_label和primary_key来确定这个subgraph会被合并到哪个元素上。
以merge节点为示例:
from py2neo import Graph, Node
g = Graph()
# 先创建一个对应的node节点
a = Node("Movie", id=123, name="Alice", type="soup")
# 指定要merge的类型和参考属性,即这里name属性一致的person就认为是相同节点,不考虑type等
g.merge(a, "Movie", "name")
另外需要注意的是,py2neo中的merge与原生cypher中的merge有所不同,cypher中会判断是否为同一个节点,是则合并,否则创建。而在py2neo中,是则覆盖,否则创建。
考虑到有时需要指定多个键值,但经过测试merge函数似乎不太支持,这种情况就只有使用run函数,执行原生cypher语句了。
SOURCE:CSDN
版权属于:。。。源
转载时须注明出处及本声明。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:
https://cloud.tencent.com/developer/support-plan?invite_code=2py75w7904qok