如何在没有开始节点的情况下获取ARANGO数据库中的所有图形

时间:2017-03-03 11:02:51

标签: graph orientdb graph-databases arangodb aql

如何在没有开始节点的情况下获取ARANGO DB中的所有图形?

与OrientDB一样,要获取All Graph Only,请使用'Select From v' image

到目前为止,我已经在ArangoDB中使用AQL和start节点: 'for v,e,p IN 2 ANY'user / 188802'graph'a'return p'

现在,我想在没有起始节点的ArangoDB中获取所有图形? 给我朋友的方式..! 在此之前谢谢!!

1 个答案:

答案 0 :(得分:2)

图表是一组Edge集合。每个Edge集合引用_from和_to文档,这些文档存储在Document集合中。

图遍历查询期望您有一个起始位置,并返回该单个起始位置的结果。

可以识别所有可能的起始位置,然后在这些位置上运行图遍历。

您需要知道组成图表的文档集的名称,您可以将它们插入到这样的AQL查询中:

FOR vertex IN UNION(
        (FOR v IN document_collection_1 RETURN v._id),
        (FOR v IN document_collection_2 RETURN v._id),
        (FOR v IN document_collection_3 RETURN v._id)
    )
    FOR v, e IN 1..5 OUTBOUND vertex GRAPH 'my_graph_name' OPTIONS { uniqueVertices: true }
    RETURN DISTINCT [
        { 
            _from: e._from,
            _to: e._to
        }
    ]

请记住,在ArangoDB中,文档集合可以绑定到多个图形,因此您需要确保识别属于图形的所有文档集合。

然后,此查询将提取包含图中定义的所有链接的对象数组。此查询仅关注具有作为图形一部分的边的顶点。如果顶点上没有边缘,它将不会出现在输出中,因为它不是图形的一部分。