如何在ArangoDB中找到顶点的独立度?

如何在ArangoDB中找到顶点的独立度?,arangodb,Arangodb,我正在尝试查找顶点集合中所有悬空的文档。为此,我想我必须找到indegree=0的所有顶点。我如何使用AQL实现这一点。假设您在集合顶点和边缘集合边缘中有一个带有U键的文档,那么您可以确定如下索引: RETURN LENGTH(FOR v IN INBOUND 'Verts/A' Edges RETURN true) 如果您有一个命名图MyGraph,请使用以下命令: RETURN LENGTH(FOR v IN INBOUND 'Verts/A' GRAPH 'MyGraph' RETURN

我正在尝试查找顶点集合中所有悬空的文档。为此,我想我必须找到indegree=0的所有顶点。我如何使用AQL实现这一点。

假设您在集合
顶点
和边缘集合
边缘
中有一个带有
U键的文档,那么您可以确定如下索引:

RETURN LENGTH(FOR v IN INBOUND 'Verts/A' Edges RETURN true)
如果您有一个命名图
MyGraph
,请使用以下命令:

RETURN LENGTH(FOR v IN INBOUND 'Verts/A' GRAPH 'MyGraph' RETURN true)
要确定哪些顶点没有入站边,可以执行以下操作:

FOR s IN Verts
  FILTER NOT FIRST(FOR v IN INBOUND s._id Edges LIMIT 1 RETURN true)
  RETURN s._id
要查找悬挂顶点(没有任何连接的边),您必须将
入站
更改为
任何

与其进行子查询遍历,不如在不进行遍历的情况下利用边缘索引:

FOR v IN Verts
  FILTER NOT FIRST(FOR e IN Edges
    FILTER v._id == e._from || v._id == e._to
    LIMIT 1
    RETURN true)
  RETURN v._id
使用命名图进行遍历的好处是可以考虑图的所有边集合。如果它有多个顶点集合,则仍然需要单独检查每个集合