作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ArangoDB 2.8
我正在执行包含 2 个不同集合的遍历查询。然而,在我的结果中,我只想获得一个特定的集合,但我没有看到按集合名称过滤的方法。
在我的例子中,我有address
集合和user
集合。在 address
集合中,我将 3 个级别区分为:{addressType: state}、{addressType: city} 和 {addressType: street}。然后我有一条边从 address
链接到 user
集合(state>city>street>user)。我想从 address
(任何类型)到 user
(如果有的话)进行遍历(如下面的代码),并且只返回 类型的集合code>user
- 例如,如果街道没有指向用户的链接,则返回空 -。
For p in TRAVERSAL(address, myEdge, @vertex_id, 'outbound', {paths:false})
RETURN p.vertex._id)
最佳答案
另一个答案是使用 IS_SAME_COLLECTION
函数,正如 this SO answer 所提示的那样:
FOR p IN TRAVERSAL(address, myEdge, @vertex_id, 'outbound', {paths:false})
FILTER IS_SAME_COLLECTION('user', p.vertex._id)
RETURN p.vertex._id)
或者,由于 TRAVERSAL
在 ArangoDB 3.0+(see this answer 和 migration guide)中被删除,类似
FOR v IN 0..5 IN OUTBOUND @vertex_id myEdge
FILTER IS_SAME_COLLECTION('user', v._id)
RETURN v._id)
关于ArangoDB:在遍历查询中按集合类型过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40256750/
我是一名优秀的程序员,十分优秀!