来自GraphObject的复杂查询neo4j

时间:2016-10-10 07:22:00

标签: neo4j cypher procedure py2neo

我正在使用GraphObject将Neo4j节点映射到Python类,我喜欢当我得到一个带有关系的Node时,因为我的节点也是Python类。例如,如果我的类是Person,我可以使用Person.select,并获取Person对象。

现在,我需要执行一个复杂的查询,以便它需要调用空间过程,我只能用graph.run(“MY_COMPLEX_QUERY”)执行此操作,但这会返回节点(并且这些节点没有关系)。

使用单个查询使用GraphObject选择器执行任何查询是否可行?有什么想法吗?

谢谢!, 此致

PD:我可以获得所有ID,并且在使用ID后使用Person.select,但这不是一个好的解决方案。

1 个答案:

答案 0 :(得分:0)

您无法在一个查询中完成所有操作。在幕后,py2neo似乎甚至没有在一个查询中完成所有工作。如果您真的想要获取GraphObjects,可以从节点列表中执行此操作:

def make_GraphObjects(graph, GraphObjectCls, nodes):
    for node in nodes:
        obj = GraphObjectCls.wrap(node)
        graph.pull(obj)
        yield obj

这将是一次以上的交易,但这是使用OGM的限制。它声称可以简化您的互动,但我发现它主要限制了它们。