python - 使用 SQLAlchemy 中的图,如何找到未通过边连接到某个特定其他节点的节点?

标签 python graph sqlalchemy

假设我已将有向图保存在类似于 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/

相关文章:

python - Pandas - 在 CSV 文件的不同列中查找相同值的更快方法?

java - 无法找到或加载主类 org.apache.giraph.yarn.GiraphApplicationMaster

python - SQLAlchemy 确定唯一约束是否存在

python - SQLAlchemy StaleDataError 删除通过 ORM sqlalchemy.orm.exc.StaleDataError 插入的项目

python - 在循环中迭代字符串中的每个第 n 个元素 - python

python - 尝试在 MS Windows 上运行时出现 "mlflow ui"错误

Python PIL - 如何比较两个图像

graph - 巨大的图形可视化

java - 以正确的顺序绘制事物,Java

database - 我在 SQLAlchemy 中的关系有什么问题?