【发布时间】:2014-04-07 01:22:25
【问题描述】:
我正在使用 MongoDB,我想在其中存储各种树。
存储树的一种方法是将每个节点存储为一个文档,其中包含对其子/父/祖先的引用(如 here 所述)
-
另一种存储方式是将整个树存储为一个文档,并将子文档存储为子文档。例如
tree : { "title" : "root", "children" : [ { "title" : "node_1", "children" : [ ... ] }, { "title" : "node_2", "children" : [ ... ] } ] }
问题:推荐哪种方式存放树木?
以下是我想对我的数据执行的操作:
- 添加节点
- 删除一个节点
- 更新节点
- 获取整棵树的json
由于我计划使用 JsTree 在 UI 上显示此树(您可以推荐 JsTree 的更好替代方案),它需要嵌套格式的 json 数据(方式 2),我想以相同的方式存储数据而不是方式 1。
如果我以方式 1 将 json 数据存储在数据库中,那么我将必须为每个文档/节点映射一个 java 对象,然后通过将每个父级指向其相应的子级然后在 java 中手动创建一个树对象,然后转换将 java-tree-object 返回到 json 以获取嵌套的 json。
每个节点的 Jave 对象如下所示:
class Node {
private String title:
private List<Node> children;
}
【问题讨论】:
标签: json jquery-ui mongodb tree