如何在arangodb中显示完全嵌套层次结构的给定节点的所有子/父节点

如何在arangodb中显示完全嵌套层次结构的给定节点的所有子/父节点,arangodb,Arangodb,我们有一个边缘集合“ChildEvents”,有999999条记录 结构: _从:事件/1,_到:事件/2 _从:事件/2,_到:事件/3 在此结构中,节点1是超级父节点,节点2是节点1的子节点,节点3是节点2的子节点。(从上到下的嵌套层次结构) 1-->2-->3-->4-->..999999 我的要求是显示给定节点的所有嵌套父节点/子节点。 如果我提供节点-4,查询应该显示从节点-5到节点-999999的子节点。 (我在neo4J数据库中使用匹配查询处理了这个问题)。 但在arangoDB中

我们有一个边缘集合“ChildEvents”,有999999条记录

结构:

_从:事件/1,_到:事件/2

_从:事件/2,_到:事件/3

在此结构中,节点1是超级父节点,节点2是节点1的子节点,节点3是节点2的子节点。(从上到下的嵌套层次结构)

1-->2-->3-->4-->..999999

我的要求是显示给定节点的所有嵌套父节点/子节点。 如果我提供节点-4,查询应该显示从节点-5到节点-999999的子节点。 (我在neo4J数据库中使用匹配查询处理了这个问题)。

但在arangoDB中,当我试图使用下面的查询实现这一点时,它只返回2条记录

****对于出站“事件/350”中的v,任何ChildEvents返回v****


有人能帮忙吗?非常感谢您的帮助。

遍历查询要求您声明一个
min
值(在我的示例中为“0”),但为了满足您的要求,您还需要声明一个
max
值(999999)(请参阅文档)

此外,术语
any
不以这种方式使用,特别是因为您正在寻找出站关系(出站从父到子

  • 从“事件”集合中查找键为“350”的节点
  • 返回开始节点(“事件/350”)
  • 返回“events/350”的所有子节点(全部999648个)
  • 您不需要为“max”值提供精确的数字-这只是要遍历的边数的上限


    如果这个查询不适用于您,那么我建议您仔细查看您的边缘。您可能有间隙或方向不正确(将
    \u从
    \u交换到
    )。

    谢谢Kerry。所以有了上限,我的查询就可以工作了,但我觉得这会带来一些限制。如果事件是动态生成的,并且我们只在运行时知道上限,那么很难得到结果。如果我比较neo4J产品,其中我有一百万个节点,那么我需要做的就是这个查询-MATCH({id:1})-[*]-(connected)RETURN connected,它提供了连接节点中的所有父节点和子节点。“所以我们在ArangoDB中没有这样的等价物?”Solairisrinivasan说,我不知道。我发现
    限制有时是有限制的,但我明白为什么会有限制。也就是说,限制不需要与实际上限匹配。将
    limit
    设置为一个非常大的数字(大于您可能遇到的遍历次数)使其本质上是无限的。
    FOR v IN 0..999999 OUTBOUND 'events/350'
        ChildEvents
        RETURN v