2
我试图从一个Neo4j DB中加载节点(约400个)和关系(约800个)来创建一个使用D3的强制有向图。这是我的get函数(我使用的是龙卷风):使用py2neo从Neo4j中获取大量节点的最快方法
def get(self):
query_string = "START r=rel(*) RETURN r"
query = neo4j.CypherQuery(graph_db, query_string)
results = query.execute().data
start = set([r[0].start_node for r in results])
end = set([r[0].end_node for r in results])
nodes_to_keep = list(start.union(end))
nodes = []
for n in nodes_to_keep:
nodes.append({
"name":n['name'].encode('utf-8'),
"group":n['type'].encode('utf-8'),
"description":n['description'].encode('utf-8'),
"node":int(n['node_id'])})
#links
links = []
for r in results:
links.append({"source":int(r[0].start_node['node_id']), "target":int(r[0].end_node['node_id'])})
self.render(
"index.html",
page_title='My Page',
page_heading='Sweet D3 Force Diagram',
nodes=nodes,
links =links,
)
我想昂贵的过程是for n in nodes_to_keep:
既然每次我每个属性时for r in results:
,这是到服务器的行程。对?
完成此任务的最佳方法是什么?