树 - 保存父路径

时间:2011-12-09 12:41:55

标签: mongodb mongodb-.net-driver

我在一个数组中有一个嵌入式(可更新)树结构 - 考虑到即将$slice只能选择数组部分的能力,我正在考虑实现一种只显示一个(子)分支的方法树的。

如果我理解正确,为了有效地执行此操作,我必须在树中的每个项目中保存路径(grandparent.parent.child)。

但是,我看不到管理这些路径的好方法(更新时),看起来这些是我的选择:

  1. 盲目地信任客户端参数,只是在不验证路径的情况下插入阵列。
  2. 获取整个文档,计算路径,然后才存储新项目
  3. 你怎么看?分支不能在树中移动,只能插入/更新它们。

1 个答案:

答案 0 :(得分:0)

我只是没想到足够深。在插入时我目前只有一个父ID,但是当我开始有路径时 - 我可以使用它们来查找父路径,然后我可以验证父路径的存在方式与我目前正在进行的路径完全相同with parent-id。

这种方法的唯一问题是我需要保存路径,即使对于没有父节点的子节点(root的子节点)也是如此。

然后,我可以使用mongo查询在数组中搜索它们,如果它们不存在,则路径是伪造的,我会停止更新。