2010-04-10 71 views
2

在Mongo中,我的理解是您可以擁有數據庫和集合。我正在研究一個社交型應用程序,該應用程序會有博客和評論(以及其他內容),並且以前使用MySQL和相當繁重的分區來試圖限制可能發生的併發問題。MongoDB - 正確使用集合?

用MySQL,我塞進我的所有用戶數據到數據庫_user有幾個表,以進一步對數據進行分區(博客,網頁等)。

我與蒙戈的直接反應將是每用戶一個集創建一個「用戶」數據庫。通過這種方式,用戶的「zach」博客條目將進入「zach」集合,並帶有相關注釋,並且這些將成爲同一個集合中的子對象。基本上像在MySQL中爲每個用戶動態創建一個表,但顯然沒有可能施加的複雜性和限制。

當然,因爲我無法衡量這個想法的(啊哈..)的質量和潛在的問題,它可能導致的道路之前,我還沒有真正使用蒙戈。

我希望用戶數據在用戶創建/非共享(主要)被放到一個位置的* nix環境中被處理很多用戶目錄(當前使用的MySQL將是如上所述的appname_users以上)。

大多數用戶數據將特定於用戶頁面。跨所有站點用戶查詢的一些用戶數據(可搜索的用戶配置文件)目前保存在單獨的數據庫/表中,我希望像這樣的內容可以放入appname_system數據庫中,並分解爲集合和/或特定於應用程序數據庫(appname_profiles)。

無論如何,因爲在這個現有的文件是目前有點薄,我的經驗是,我想我可能會發現從別人一些指導與系統的一個更好的工作的瞭解極爲有限。

從另一方面來說,我真的已經試圖將MySQL視爲一個無模式文檔存儲,並且使用Mongo這樣做似乎更加直觀/理性/理性,所以我非常期待着入門。

感謝, 扎克

回答

2

我有同樣的應用程序。

有些事情要考慮:你可以在集合之間進行交叉查詢,而不是在數據庫之間進行查詢。 所以,最好讓數據庫中包含所有數據,然後爲每個對象創建一個集合。

然後每個文檔可以包含任何種類和數量的字段。

我試圖避免嵌入陣列B/C我有麻煩查詢正確我的目標(這是工作正常,但我的系統的架構是專爲這種用途)

和數據庫可以幾個之間共享自動切斷所以空間不是問題(如果你有超過1臺服務器)

+0

謝謝Stunti。希望獲得更多與收藏相關的響應,但數據庫信息也非常有幫助。由於它看起來並不像我會看到更多的答案,我會接受你的答案。非常感謝分享! – zmg 2010-04-15 21:02:11

+0

你有一個跨越集合的查詢的例子嗎? – Thilo 2010-08-30 01:05:04