我有代表文件夹结构的文档。一个文件夹可以包含其他文件夹(嵌套),理论上我们的应用程序可以无限制地使用3级或4级。我需要能够检索单个项目(一个节点),也许嵌入会使这项任务有点困难?
有什么建议吗?
答案 0 :(得分:3)
The docs概述了在mongodb中存储分层数据的更常用/常用方法。
Embedding documents - 有明显的缺点
- 难以搜索
- 很难找回部分结果
- 如果你需要一棵大树,可能会变得笨重。此外,MongoDB中的文档大小有限制 - 在1.8版本中为16MB(未来版本的限制可能会增加)。
因为您需要能够检索单个项目 - 不可能是您用例的最佳选择。
Array of ancestors或materialized path可能更适合您所描述的内容 - 您可以选择使用_id的完整文件路径,因为它是唯一的并且您想要查找的路径数据更常见。