如何确定arangodb树形图中的根对象?

如何确定arangodb树形图中的根对象?,arangodb,Arangodb,我有一个包含树节点的文档集合和一个包含“is child of”的边缘集合,如下所示: Folders=[ {_key:"1",name:"Root1"}, {_key:"2",name:"Root2"}, {_key:"3",name:"Root1.Node1"}, {_key:"4",name:"Root1.Node2"}] FolderRelations=[ {_from:"Folders/3",_to:"Folders/1"}, {_from:"Folders/4",_to:"Fold

我有一个包含树节点的文档集合和一个包含“is child of”的边缘集合,如下所示:

Folders=[
{_key:"1",name:"Root1"},
{_key:"2",name:"Root2"},
{_key:"3",name:"Root1.Node1"},
{_key:"4",name:"Root1.Node2"}]

FolderRelations=[
{_from:"Folders/3",_to:"Folders/1"},
{_from:"Folders/4",_to:"Folders/1"}
]
现在我想确定哪些文件夹项是该树中的根对象(所有没有出站关系的对象)

也许,我有点沉迷于思考SQL,我想执行以下操作:

SELECT * 
FROM Folders 
WHERE NOT EXIST (SELECT * FROM FolderRelations WHERE FolderRelations.FromKey=Folders.Key)

对于使用遍历和路径功能,我没有顶点可供使用。

以下是一个AQL示例,可以解决您的问题:

for f in Folders
filter LENGTH( EDGES(FolderRelations, v._id, "outbound")) == 0
return f
您将获得层次中上面没有文件夹的所有顶点的列表

但请注意: 保存{key:1}不会产生预期效果,您必须设置:

{_key: "1"}

_key用于内部key属性,它必须是字符串。

我更新了我的问题,以反映您关于设置key属性的评论。感谢您的解决方案,它与我的SQLish方法惊人地接近。Edge似乎不再是AQL中的函数。有更新版本的吗?