我在ArangoDB中以图的形式存储基本的分层游戏树。每棵游戏树都有一个开始节点,每个节点(包括开始节点)有2-5条边(动作)。我有两个集合,顶点的节点和边的动作。
我正在使用Node JS SDK,并且正在尝试找到查询所有开始节点的最佳方法?我是否应该向节点添加isRoot属性并使用该属性查询nodes集合?或者,我应该查询所有使用actions集合进行筛选的节点,以查找没有入站边的节点?或者是一个单独的开始节点集合?
发布于 2021-05-21 06:00:37
基于遍历或聚合的方法来查找根节点将不会非常有效。最快的选择可能是添加一个isRoot属性,您可以查询该属性并可能对其进行索引。
您还可以创建一个额外的顶点,该顶点具有到每个根节点的传出边,以便您可以执行从该节点到所有根节点的1跳遍历。但是,如果您想要以相反的方向遍历,并且该节点将是通常试图避免的超级节点,那么这可能会阻碍您的工作。
https://stackoverflow.com/questions/67627319
复制相似问题