2012-04-04 44 views
1

我有代表文件夾結構的文檔。一個文件夾可以包含其他文件夾(嵌套),理論上無限深度,但更真實的3或4級爲我們的應用程序。我需要能夠檢索單個項目(一個節點),也許嵌入將使這項任務有點困難?用於文件夾結構的NoSQL架構

有什麼建議嗎?

+1

應該看過文檔! http://www.mongodb.org/display/DOCS/Trees+in+MongoDB – 2012-04-04 10:03:58

回答

3

The docs給出了在mongodb中存儲分層數據的更流行/常見的方法的很好的總結。

Embedding documents - 有顯著的缺點

  • 硬盤搜索
  • 很難拿回部分結果
  • ,如果你需要一個巨大的樹可以得到笨拙。此外,MongoDB中的文檔大小有限制 - v1.8中爲16MB(未來版本的限制可能會增加)。

,因爲你需要能夠檢索單品 - 這是可能對你的使用情況最好的選擇。

Array of ancestorsmaterialized path很可能會更適合您所描述的內容 - 您可以選擇使用_id的完整文件路徑,因爲這是唯一的,並且您希望通過更常見的方式找到數據。