小编smu*_*urf的帖子

检索 arangodb 中没有链接边的顶点

检索相关edge_collection中没有边的所有顶点的最佳方法是什么

我尝试使用以下代码,但自 arangodb 2.8 以来,它变得非常慢(在以前的版本中并不是很快,但比现在快了大约 10 倍)。对于大约 1000 个边和大约 3000 个顶点的集合大小,需要超过 30 秒。

FOR v IN vertex_collection  
    FILTER LENGTH( EDGES(edge_collection, v._id, "outbound"))==0
RETURN v._id
Run Code Online (Sandbox Code Playgroud)

...

更新

...

经过一番尝试后,我得到了以下查询

LET vIDs = (FOR v IN vertex_collection
            RETURN v._id)
LET vEdgesFrom = (FOR e IN edge_collection
                  FILTER e._from IN vIDs
                  RETURN e._from)
FOR v IN vertex_collection
    FILTER v._id IN MINUS(vIDs, vEdgesFrom)
RETURN v._id
Run Code Online (Sandbox Code Playgroud)

这个速度要快得多(大约 0.05 秒),但看起来仍然像是某种解决方法(只考虑我们需要查询的多个边缘集合)。

所以我仍在寻找最佳方法来查找特定边集合中没有边的顶点。

arangodb aql

5
推荐指数
1
解决办法
1416
查看次数

标签 统计

aql ×1

arangodb ×1