笔记
我让这变成了几个问题,而不是我问的简单问题,所以我在这里将后续问题分解为他们自己的问题。
原始问题
我收到了一个 ID 列表,我首先测试它们中的任何一个是否在我的图表中,如果它们 /are/ 我正在进一步处理这些节点。
所以,例如...
fids = get_fids(record) # [100001, 100002, 100003, ... etc]
ids_in_my_graph = filter(id_is_in_graph, fids) # [100002]
def id_is_in_graph(id):
val = False
query = """MATCH (user:User {{id_str:"{}"}})
RETURN user
""".format(id)
n=neo4j.CypherQuery(graph_db,query).execute_one()
if n:
val = True
return(val)
正如您可以想象的那样,使用过滤器执行此操作,依次测试每个 ID 是否在我的图表中真的非常慢,并且显然没有正确使用 neo4j。
我将如何改写我的查询,以便我可以创建一个列表(User{id_str: [mylist]})
来查询并仅返回我的图表中的 ID?