node.js - 如何确定树 Node 是否是当前 Node 的间接后代?

标签 node.js tree

我有一个树结构。每个 Node 都有以下字段:

  • _id
  • 嵌套级别
  • oldersAnscestorId
  • ...其他值

如果给我一个 Node A 和一个 Node B,其中 B.nestingLevel > A.nestingLevel,我如何才能知道 BA 的后代?

我正在考虑使用 uuid 版本 3,它使用命名空间来以某种方式找到相关性,但目前不确定它如何帮助我。 另一个想法是使用某种动态生成的键,该键可以接受不同的值,例如更深层次嵌套 Node 的 nestingLevel_id 以及其他值来找出它们的相关性。

更新

我认为遍历不是一个好的选择,因为我在微服务架构中使用了这种方法,而遍历意味着与另一个服务进行通信。将树移动到另一个服务也不是一个选择,因为我必须使用当前的服务来查询数据库

最佳答案

我将添加一个数组,存储 Node 中所有父 Node 的一些唯一哈希值,然后检查使用它。当然,这是可以优化的。

关于node.js - 如何确定树 Node 是否是当前 Node 的间接后代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214253/

相关文章:

node.js - express + stylus + jade,没有编译任何内容

ruby如何生成一个树形结构形式的数组?

c - 不透明指针 valgrind

node.js - Visual Studio 2017 使用 Mocha

javascript - Bluebird 递归 promise 未得到解决/履行

javascript - 递归函数不超过调用栈

javascript - 映射具有用户 ID 的对象数组并从该用户 ID 获取用户详细信息

c - 左子右兄弟树 - 深度优先搜索 - 性能

haskell - 如何定义 listTree 使其在线性时间内运行?

node.js - 更新嵌套树中的后代 mongoDB、node.js