假设我将有向图保存在类似于 SQLAlchemy 文档中的示例的表中:http: //docs.sqlalchemy.org/en/rel_0_7/orm/examples.html#directed-graphs
现在我保存一个特定的节点a
。使用 SQLAlchemy ORM,我想构建一个查询来查找所有没有边缘的节点a
。如何才能做到这一点?
假设我将有向图保存在类似于 SQLAlchemy 文档中的示例的表中:http: //docs.sqlalchemy.org/en/rel_0_7/orm/examples.html#directed-graphs
现在我保存一个特定的节点a
。使用 SQLAlchemy ORM,我想构建一个查询来查找所有没有边缘的节点a
。如何才能做到这一点?
def get_non_touching(ref_node):
qry = session.query(Node)
qry = qry.filter(~Node.lower_edges.any(Edge.higher_id == ref_node.node_id))
qry = qry.filter(~Node.higher_edges.any(Edge.lower_id == ref_node.node_id))
qry = qry.filter(Node.node_id != ref_node.node_id) # exclude node "a" itself as well
return qry.all()
a = session.query(Node).get(1)
res = get_non_touching(a)