已定位图数据库顶点,如何检索其关联的所有文档?
获取指定顶点关联的所有文档
嘿,既然你已经成功定位到目标顶点(_id为spec/3834670),要获取它关联的所有文档其实很简单,核心是利用ArangoDB的边集合来遍历关联关系。下面给你两种常用的实现方式:
方法1:使用GRAPH_NEIGHBORS函数(推荐,适用于已知图名称的场景)
如果你已经创建了包含该顶点和边的图(比如图名为spec_graph),可以直接用这个函数快速获取所有关联顶点,写法简洁高效:
FOR neighbor IN GRAPH_NEIGHBORS('spec_graph', 'spec/3834670', { includeData: true, // 返回关联顶点的完整数据,而不只是ID direction: 'any' // 可选参数:'outbound'只找出边关联的顶点、'inbound'只找入边关联的顶点、'any'双向都包含 }) RETURN neighbor
方法2:手动遍历边集合(适用于不知道图名称的场景)
如果你不确定图的名称,但知道用来关联顶点的边集合(比如边集合名为spec_edges),可以通过遍历边来定位关联的顶点,灵活性更高:
// 先筛选出所有与目标顶点相连的边 FOR edge IN spec_edges FILTER edge._from == 'spec/3834670' OR edge._to == 'spec/3834670' // 根据边的方向,获取对应的关联顶点 LET relatedVertex = DOCUMENT(edge._from == 'spec/3834670' ? edge._to : edge._from) RETURN relatedVertex
几个小提示
- 记得把示例里的
spec_graph(图名称)和spec_edges(边集合名称)替换成你实际使用的名称; - 如果只需要特定方向的关联文档,比如只获取该顶点指向的文档,方法1可以把
direction改成outbound,方法2可以把FILTER条件改成edge._from == 'spec/3834670'; - 就算关联的文档属于不同的集合,这两种方法都能正常工作,因为
GRAPH_NEIGHBORS和DOCUMENT函数都支持跨集合查询。
内容的提问来源于stack exchange,提问作者cantona_7
相关产品推荐
相关产品推荐

