2014-02-06 80 views
1

我有一個大約200K文件的mongo db。文檔的架構類似於Mongodb - 多個計數vs聚合框架性能

doc : { 
    'class' : String, 
    'data' : {} 
} 

類可以是a,b或c。

我需要知道每班有多少文件。

什麼查詢有更好的性能?使用聚合框架進行查詢或製作3個查詢,每個查詢針對不同類的文檔進行計數?

謝謝!

+1

最好的方法是通過實驗。如果有任何 –

+1

同意orid,'$ group'將不會使用索引。即使有一個很好的理論答案,你也必須提供一個完整的例子,查詢模式等等。現在的問題就像「如何建造房子,必須有2個窗口,使用磚塊?」。 – mnemosyn

回答

0

我相信你應該使用aggregation framework,幾個簡單的原因:

  • 它的快速和可以使用索引(尤其是如果你之前的分組避免使用$項目)。
  • 這是對mongod的單個調用。簡單,乾淨,您可以輕鬆監控它。
  • 如果您將來添加更多班級,則無需更改聚合鏈條,完全可以使用。相反,如果您選擇製作不同的計數語句,則必須添加一個或多個語句,並且還必須更改應用程序代碼以處理結果。