我正在使用 ArangoDB 2.8
我正在做一个包含 2 个不同集合的遍历查询。然而,在我的结果中,我只想获得一个特定的集合,但我没有看到按集合名称过滤的方法。
就我而言,我有address收藏和user收藏。在address集合中,我将 3 个级别区分为:{addressType: state}、{addressType: city} 和 {addressType: street}。然后我有一个边缘链接address到user集合(州>城市>街道>用户)。我想做一个从address(任何类型的)到user(如果有的话)的遍历(就像下面的代码一样)并且只返回类型的集合user- 例如,如果一条街道没有指向用户的链接,则返回空-.
For p in TRAVERSAL(address, myEdge, @vertex_id, 'outbound', {paths:false})
RETURN p.vertex._id)
Run Code Online (Sandbox Code Playgroud)
另一个答案是使用这个 SO 答案IS_SAME_COLLECTION所暗示的函数:
FOR p IN TRAVERSAL(address, myEdge, @vertex_id, 'outbound', {paths:false})
FILTER IS_SAME_COLLECTION('user', p.vertex._id)
RETURN p.vertex._id)
Run Code Online (Sandbox Code Playgroud)
或者,由于TRAVERSAL已在 ArangoDB 3.0+ 中删除(请参阅此答案和迁移指南),类似于
FOR v IN 0..5 IN OUTBOUND @vertex_id myEdge
FILTER IS_SAME_COLLECTION('user', v._id)
RETURN v._id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |