文件夹结构的 NoSQL 架构

Mar*_*yen 4 mongodb nosql

我有代表文件夹结构的文档。一个文件夹可以包含其他文件夹(嵌套),理论上深度无限,但对于我们的应用程序来说,更实际的是 3 或 4 层。我需要能够检索单个项目(一个节点),也许嵌入会让这个任务有点困难?

有什么建议么?

AD7*_*six 6

文档很好地总结了在 mongodb 中存储分层数据的更流行/常见的方法。

\n\n

嵌入文档- 有明显的缺点

\n\n
\n
    \n
  • 很难搜索
  • \n
  • 很难取回部分结果
  • \n
  • 如果您需要一棵大树,可能会变得笨重。此外,在 v1.8 中,MongoDB \xe2\x80\x93 中的文档大小有 16MB 的限制(未来版本中限制可能会增加)。
  • \n
\n
\n\n

由于您需要能够检索单个项目 - 这可能不是适合您的用例的最佳选择。

\n\n

祖先数组物化路径可能更适合您所描述的内容 - 您可以选择使用 _id 的完整文件路径,因为它是唯一的,并且您希望更常见地查找数据的路径。

\n