我正在尋找使用MongoDB來實現我的數據庫。你爲什麼要嵌入一個文件insode文件?MondoDB - 爲什麼要在文檔中嵌入文檔
1
A
回答
4
這是在關係數據庫中執行JOIN(在MongoDB中無法完成的操作)的一種方法。
例如,您可以將MongoDB文檔作爲博客文章,並在其中嵌入評論列表。
然後你可以(例如):
- 在一個單一的查詢負載後和評論
- 搜索具有回覆的帖子
- 搜索用戶A哪些職位由用戶B的回覆
- 在一個事務中更新原子員額和評論
所有這一切是不可能的(或在LEA如果評論作爲單獨的文檔存儲在他們自己的收藏中,則很困難)。
2
簡單來說,嵌入如果它不是一個頂級對象,如果它沒有複雜的人際關係,是否會有大量的重複數據,如果你沒有嵌入,如果你的文檔變得更大然後幾兆。
從MongoDB的網站摘自:最佳實踐的http://www.mongodb.org/display/DOCS/Schema+Design
摘要
- 嵌入「一流」的目標,是在頂層,通常有自己的收藏。
- 通常會嵌入訂單項明細對象。
- 通常應該嵌入跟隨對象建模「包含」關係的對象。
- 多對多關係通常通過鏈接完成。
- 只有少數對象的集合可以作爲單獨的集合安全地存在,因爲整個集合可以快速緩存在應用程序服務器內存中。
- 嵌入對象比集合中的「頂級」對象鏈接有點困難。
- 獲取嵌入式對象的系統級視圖更加困難。在需要時,通過使用MongoDB的map/reduce工具來執行這種操作。
- 如果要嵌入的數據量很大(很多兆字節),則可能會達到單個對象大小的限制。另請參閱GridFS。
- 如果性能問題,嵌入。
相關問題
- 1. 在Python文檔中嵌入reStructuredText文檔
- 2. 在Word文檔中嵌入Word文檔
- 3. 如何將嵌入式文檔放入嵌入式文檔中?
- 4. mongoid嵌入文檔
- 5. Rails嵌入文檔
- 6. Mongoengine:如何排序嵌入文檔場嵌入文檔列表
- 7. MongoDB ::爲什麼嵌入式文檔索引不要以相反的順序返回文檔?
- 8. 在Mongodb的嵌套文檔中插入新文檔
- 9. 表示:在現有文檔中嵌入文檔
- 10. 如何在XHTML文檔中嵌入XML文檔?
- 11. 存在時返回父文檔中嵌入的文檔
- 12. 使用Skydrive獲取文檔在skydrive中嵌入文檔的URL
- 13. 在Mongoid的父文檔中嵌入文檔的髒跟蹤
- 14. 在LaTeX文檔中嵌入多頁文檔
- 15. 在另一個OpenXml文檔中嵌入OpenXML文檔
- 16. 在pymongo中嵌入文檔的最佳方式是什麼?
- 17. 什麼是jQuery(文檔)與$(文檔)
- 18. 在文檔中插入文檔
- 19. 將JavaScript嵌入文檔的正文中?
- 20. 在iiimongodbsuite中嵌入文檔Upsert
- 21. 在Assembly中嵌入Intellisense Xml文檔?
- 22. 在MongoDB中過濾嵌入式文檔
- 23. 在Mongoid中驗證嵌入式文檔
- 24. 在C#中嵌入Word文檔#
- 25. 在類文檔中嵌入MediaWiki頁面
- 26. 在MongoDB中使用嵌入式文檔
- 27. 在MongoDB中查詢嵌入文檔
- 28. mongoengine在DynamicField中嵌入文檔
- 29. 在PDF中嵌入OTF字體文檔
- 30. 在XML文檔中嵌入HTML錨點
好的,我明白了。因此,使用您的博客帖子示例,假設我想爲帖子存儲標籤。我可以在博客文章中嵌入一個標籤列表,這將節省我搜索特定博客文章標籤的整個集合。如果我還爲標籤創建了一個集合,那麼我可以計算標籤的使用次數呢?因此,在帖子中嵌入標籤併爲具有計數的標籤分別收集標籤。將MongoDB的能夠處理所有職位查詢計數的次數使用了特定的標籤?或者是一個單獨的標籤集合適合? – Santiago 2011-12-26 02:28:51
「mongoDB能夠處理所有帖子的查詢來計算特定標籤的使用次數嗎?」。是的,您可以統計所有使用該標籤的文檔。如果標籤被索引,那也應該很快。 – Thilo 2011-12-26 05:09:10