2014-02-06 81 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的单个调用。简单,干净,您可以轻松监控它。
  • 如果您将来添加更多班级,则无需更改聚合链条,完全可以使用。相反,如果您选择制作不同的计数语句,则必须添加一个或多个语句,并且还必须更改应用程序代码以处理结果。