gpt4 book ai didi

ArangoDB:在遍历查询中按集合类型过滤

转载 作者:行者123 更新时间:2023-12-01 11:22:53 24 4
gpt4 key购买 nike

我正在使用 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 answermigration 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com