ArangoDB 获取树根节点
ArangoDB Get Tree Root Nodes
我将基本的分层游戏树存储在 ArangoDB 中作为图表。每棵博弈树都有一个起始节点,每个节点(包括起始节点)有2-5条边(动作)。我有 2 个集合,顶点节点和边操作。
我正在使用 Node JS SDK,我正在尝试找到查询所有起始节点的最佳方式?我应该向节点添加 isRoot 属性 并使用它查询节点集合吗?或者我应该使用操作集合查询所有执行过滤器的节点以查找没有入站边缘的节点?还是单独的起始节点集合?
查找根节点的遍历或基于聚合的方法效率不高。最快的选择可能是添加一个 isRoot
属性,您可以查询该属性并可能对其进行索引。
您还可以创建一个额外的顶点,该顶点具有到每个根节点的出边,这样您就可以从该节点到所有根节点进行 1 跳遍历。但是,如果您想沿相反的方向遍历,那么这可能会妨碍您,并且该节点将是人们通常试图避免的超节点。
我将基本的分层游戏树存储在 ArangoDB 中作为图表。每棵博弈树都有一个起始节点,每个节点(包括起始节点)有2-5条边(动作)。我有 2 个集合,顶点节点和边操作。
我正在使用 Node JS SDK,我正在尝试找到查询所有起始节点的最佳方式?我应该向节点添加 isRoot 属性 并使用它查询节点集合吗?或者我应该使用操作集合查询所有执行过滤器的节点以查找没有入站边缘的节点?还是单独的起始节点集合?
查找根节点的遍历或基于聚合的方法效率不高。最快的选择可能是添加一个 isRoot
属性,您可以查询该属性并可能对其进行索引。
您还可以创建一个额外的顶点,该顶点具有到每个根节点的出边,这样您就可以从该节点到所有根节点进行 1 跳遍历。但是,如果您想沿相反的方向遍历,那么这可能会妨碍您,并且该节点将是人们通常试图避免的超节点。