py2neoを使用してneo4jデータベースのすべてのノードを反復処理する方法はありますか?
最初に考えたのは を繰り返すGraphDatabaseService
ことでしたが、うまくいきませんでした。py2neoでそれを行う方法がない場合、別のpythonインターフェースがありますか?
編集:私は今のところ@Nicholasの答えを受け入れていますが、誰かがジェネレータを返す方法を教えてくれれば更新します。
次のような非同期サイファーでそれを行うことをお勧めします。
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)
もちろん、参照ノードを除外したり、クエリを微調整したりすることもできます。
にげ
2 つの解決策のうちの 1 つが思い浮かびます。暗号クエリを実行するか
START n=node(*) return n
もう 1 つは、私は 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