11

有没有办法使用py2neo遍历neo4j数据库中的每个节点?

我的第一个想法是遍历GraphDatabaseService,但这没有用。如果没有办法用 py2neo 做到这一点,是否还有另一个 python 接口可以让我这样做?

编辑:我现在接受@Nicholas 的回答,但如果有人能给我一种返回生成器的方法,我会更新它。

4

3 回答 3

13

我建议使用异步 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)

当然,您可能想要排除参考节点或以其他方式调整查询。

尼日

于 2012-06-18T14:51:05.710 回答
4

想到了两种解决方案之一。要么做一个密码查询

START n=node(*) return n

另一个,我对 python 不熟悉,所以我将在 Java 中给出示例

GlobalGraphOperations.at(graphDatabaseService).getAllNodes()

这是旧的弃用graphDatabaseService.getAllNodes()建议的方式。

于 2012-06-18T02:51:21.280 回答
4

对于较新版本的 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
于 2016-02-04T21:46:58.923 回答