2013-03-25 53 views
0

我知道Mongo對工作方式更爲主觀(請不要因此而關閉此線程),但是對於Mongo來說,有沒有一種表現或「最佳拍賣」方式來存儲以下兩種方式: -Mongo - 你應該在更多的領域做更多的文件嗎?

選項1 - 一個文檔中的所有開關,每一個文檔具有字段: -

{ 
    "stuffA": 415125, 
    "booleanSwitchA": true, 
    "booleanSwitchB": false, 
    "booleanSwitchC": true, 
} 

選項2 - 與一個場開關多個文檔 - 在應用程序整理: -

{ 
    "stuffA": 415125, 
    "switch": "a", 
} 
{ 
    "stuffA": 415125, 
    "switch": "b", 
} 
{ 
    "stuffA": 415125, 
    "switch": "c", 
} 
+0

它們是如何被使用的?你需要什麼類型的索引?什麼類型的原子保證當寫改變?你有沒有對你的實際數據進行任何性能測試? – WiredPrairie 2013-03-25 13:05:11

+0

我同意WiredPrarie - 答案完全取決於你的用例。你在用什麼開關? – shelman 2013-03-25 15:22:27

回答

3

我認爲這個選項取決於你想如何使用它。如果您必須查詢以基於stuffA的一個查詢加載所有信息,則選項一是最佳選擇,但如果您必須單獨查詢每個交換機,則選項二將會結束。即使我認爲可能的設計也可以是,因爲您也可以索引數組元素。

{ 
"stuffA": 415125, 
"OnSwitch" : {"A" , "C"}, 
"OffSwitch" : {"C"} 
} 
+1

+1好答案。 MongoDB的性能優勢總結爲一個詞:locality。您需要返回具有完全滿足查詢所需數據的文檔。 – marr75 2013-03-26 00:00:44