使用MongoDB

时间:2015-11-05 13:10:53

标签: mongodb filesystems structure

我想用MongoDB构建一个类似于结构的文件系统。

以下是规则:

  • 最顶层的实体是项目
  • 文件夹可以是项目或其他文件夹的直接后代
  • 文件可以是项目或文件夹的直接后代

基本上,这就是我想要的:

project: {
    folders: [{
          folders: [{
                folders: [{
                      ...
                }],
                files: []
          }],
          files: []
    }],
    files: []
}

所以我看到它,我有三个选择:

1。)定义一个SQL类型结构,其中每个实体都在其自己的集合中。

  • 专业人士:"标准"关注分离的组织
  • 缺点:绝对查询地狱,慢,不支持路径,需要实现交易

2。)定义一个结构(如上例所示),其中所有内容都存在于project实体中。

  • 专业人士:干净且不言自明的组织
  • 缺点:难以查询(需要在应用程序层中查询和操作事物而不是数据库层),事情并没有明确分开,因为一切都存在于一个实体内(是真正的骗局吗?),文档大小系统强制执行的16 MB限制,如果不是灾难性的话,访问一个文档往往至少有问题:)

3.。)定义一个包含三个实体的混合结构,但文件夹可以存放在其他文件夹中:

projects: []

folders: [{
    folders: [{
          folders: [{
              ...
          }]
      }]
}]

files: []
  • 专业人士:相对简洁且不言自明的组织,相对简单的查询(虽然它需要大量的应用程序级别的查询和操作),几乎(足够好)一个标准"关注分离的组织
  • 缺点:需要实施交易

我试图实现这三个。在这一点上,第三种解决方案似乎是最好的。我非常感谢大家对此的投入。有没有人试图取得类似的东西?

0 个答案:

没有答案