有没有办法使用py2neo遍历neo4j数据库中的每个节点?
我的第一个想法是遍历GraphDatabaseService
,但这没有用。如果没有办法用 py2neo 做到这一点,是否还有另一个 python 接口可以让我这样做?
编辑:我现在接受@Nicholas 的回答,但如果有人能给我一种返回生成器的方法,我会更新它。
我建议使用异步 Cypher 执行此操作,例如:
from py2neo import neo4j, cypher
graph_db = neo4j.GraphDatabaseService()
def handle_row(row):
node = row[0]
# do something with `node` here
cypher.execute(graph_db, "START z=node(*) RETURN z", row_handler=handle_row)
当然,您可能想要排除参考节点或以其他方式调整查询。
尼日
想到了两种解决方案之一。要么做一个密码查询
START n=node(*) return n
另一个,我对 python 不熟悉,所以我将在 Java 中给出示例
GlobalGraphOperations.at(graphDatabaseService).getAllNodes()
这是旧的弃用graphDatabaseService.getAllNodes()
建议的方式。
对于较新版本的 py2neo,接受的版本不再有效。而是使用:
from py2neo import Graph
graph = Graph("http://user:pass@localhost:7474/db/data/")
for n in graph.cypher.stream("START z=node(*) RETURN z"):
//do something with node here
print n