Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有代表文件夹结构的文档。一个文件夹可以包含其他文件夹(嵌套),理论上无限层深,但对于我们的应用程序来说更现实的是 3 或 4 层。我需要能够检索单个项目(一个节点),也许嵌入会使这项任务有点困难?
有什么建议么?
文档对在 mongodb 中存储分层数据的更流行/常见的方法进行了很好的总结。
嵌入文档- 有明显的缺点
很难搜索 很难取回部分结果 如果您需要一棵大树,可能会变得笨拙。此外,MongoDB 中的文档大小有限制——v1.8 中为 16MB(未来版本可能会增加限制)。
由于您需要能够检索单个项目 - 这可能不是您的用例的最佳选择。
祖先数组或物化路径可能更适合您所描述的内容 - 您可以选择使用 _id 的完整文件路径,因为它是唯一的,并且您希望通过更常见的方式查找数据。