Json Mongodb:将树存储为一个嵌套文档还是每个节点存储一个文档?
我正在使用MongoDB,我想在其中存储各种树Json Mongodb:将树存储为一个嵌套文档还是每个节点存储一个文档?,json,jquery-ui,mongodb,tree,Json,Jquery Ui,Mongodb,Tree,我正在使用MongoDB,我想在其中存储各种树 存储树的一种方法是将每个节点存储为文档,并引用其子节点/父节点/祖先节点(如上所述) 另一种存储方式是将整个树存储为一个文档,子文档作为子文档。e、 g tree : { "title" : "root", "children" : [ { "title" : "node_1", "children" : [ ...
- 存储树的一种方法是将每个节点存储为文档,并引用其子节点/父节点/祖先节点(如上所述)
- 另一种存储方式是将整个树存储为一个文档,子文档作为子文档。e、 g
tree : { "title" : "root", "children" : [ { "title" : "node_1", "children" : [ ... ] }, { "title" : "node_2", "children" : [ ... ] } ] }
- 添加一个节点
- 删除节点
- 更新节点
- 获取整个树的json
class Node {
private String title:
private List<Node> children;
}
类节点{
私有字符串标题:
私人名单儿童;
}
看起来您将在树中不同级别的嵌套节点中执行大量操作。尽管MongoDB可以存储您描述的结构,但它不太适合在许多嵌套级别进行更新
因此,我建议您将每个节点存储为自己的文档,并查看存储父子关系的位置。请记住优化数据操作的模式。
在这种情况下,我同意你的“第一条路”。如果你不需要改变树很多,而且你说树的读操作要比写操作多1000倍,那么你可以考虑使用“方法2”,只是处理额外的工作来更新几个级别的节点。 < p>看起来你将在树中的嵌套节点的不同层次上进行大量的操作。尽管MongoDB可以存储您描述的结构,但它不太适合在许多嵌套级别进行更新 因此,我建议您将每个节点存储为自己的文档,并查看存储父子关系的位置。请记住优化数据操作的模式。 在这种情况下,我同意你的“第一条路”。如果你不需要改变树很多,而且你说树的读操作要比写操作多1000倍,那么你可以考虑使用“方法2”,只是处理额外的工作来更新几个级别的节点。