假设我已将有向图保存在类似于 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)
关于python - 使用 SQLAlchemy 中的图,如何找到未通过边连接到某个特定其他节点的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020746/