2012-10-19 47 views
13

Trello如何在MongoDB中存儲他們的數據(卡片)?Trello如何在MongoDB中存儲數據? (Collection per board?)

我讀(How does Trello show history so quickly?),他們的行動集合是最大的一個。因此,我假設他們不會將所有卡片存儲在一個巨大的集合中。

唯一的其他邏輯解決方案似乎是每個董事會或每個用戶的集合。但他們有很多用戶,我讀了(http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections),說明館藏數量有限制,有些人建議不要使用大量館藏。

我希望從Trello團隊會有人answear這一點,我希望能得到來自普通社區解決此類問題的也有一些想法。

+2

爲什麼難道不,他們所有存儲在一個收集和碎片對他們詢問這種方式,您將有效地只能查詢一次一個計算機進行查詢幾乎一樣快,一個小集合,加在上面,他們可能ping通數據傳輸到其他地區,以便響應時間保持一致,並且不久之後您就可以將完全可擴展的集合添加到數十億行中。你也必須記住鎖是db級別的,所以如果他們要使用多個東西,它會讓snese使用多個DB。 – Sammaye

+0

@Sammaye我不明白「他們查詢的碎片」部分。您可以查看所有卡片,通過卡片名稱搜索所有主板,...我瞭解分片的基本原理,但我不明白如何才能完成您所說的內容。你能否再解釋一下。 – Ben

+4

好的我現在只用了10分鐘的trello,並且已經看到如果我設計這個網站,我會有三個集合:'user','board','card'。因爲Board需要被許多用戶訪問,所以我會在'board'的'board'上分割。這樣當你查詢用戶時(在{_id,username,email}'上分割),然後獲得所有可擴展的板卡。一個電路板的列表將被嵌入在電路板行中,但不是卡片。這些卡片可能會在board_id和timestamp上分片,也可能是user_id。這就是我的第一個10分鐘一瞥 – Sammaye

回答

13

Trello將所有卡片存儲在一個集合中。該集合在卡的主板ID上分片。

+0

你知道在哪一點分拆是必要的嗎?我對MongoDB相對比較陌生,正在製作一個可能需要擴展的應用程序。 – MadPhysicist