python - 如何使用 py2neo 计算与节点的关系(一种类型)
问题描述
使用 py2neo 4.x、neo4j 3.5.3、python 3.7.x
我所拥有的:图中的一个节点a
graph = Graph(
host="alpha.graph.domain.co",
auth=('neo4j', 'theActualPassword')
)
# grab the graph
a = Node("Type", url="https://en.wikipedia.org/wiki/Vivendi")
# create a local node with attributes I should be able to MERGE on
graph.merge(a,"Type","url")
# do said merge
graph.pull(a)
# pull any attributes (in my case Labels) that exist on the node in neo4j...
# ...but not on my local node
# better ways to do this also would be nice in the comments
relMatch = RelationshipMatcher(graph)
我想要什么:连接到多少"CREATED"
关系的计数a
(在本例中为 7)
我试过的:
x = relMatch.get(20943820943)
使用关系的 ID 之一来查看是什么。它返回None
,文档说这意味着
如果没有找到这样的关系,则返回 py:const:None。与 matcher[1234] 相比,如果没有找到实体,则会引发 KeyError。
这让我觉得我完全错了。
也:relMatch.match(a,"CREATED")
这引起了
raise ValueError("节点必须以序列或集合的形式提供")
告诉我我绝对没有正确阅读文档。
不一定使用这个类,这可能不是我认为的那样,我如何计算有多少["CREATED"]
被指向a
?
解决方案
下面的工作,并且比以前的实现更容易编写,但我认为这不是正确的方法。
result = graph.run(
"MATCH(a) < -[r:CREATED]-(b) WHERE ID(a)=" + str(a.identity) + " RETURN count(r)"
).evaluate()
print(result)
推荐阅读
- java - Redis中,如何根据value查询hash数据
- c++ - 在 C++ 中使用数组时如何防止堆栈溢出?
- php - 我已连接到数据库,但是在调用 mysqli_stmt_bind_param 时,我得到“无效的对象或资源”。代码是 PHP 语言
- python - 使用 pyodbc 从 MS Access 获取查找值
- html - 淘汰验证消息显示为 [object Object]
- python-3.x - 如何使用 LINE Notify 仅发送图像
- javascript - Symfony 4 - 如何在 javascript 中使用资产?
- c# - 如何使用位图向多个图像添加水印
- python - 使用实例方法时带莳萝的 Pathos KeyError
- d3.js - 在 BigQuery 中订购大型时间序列数据集以进行导出