Mongodb - 多重计数与聚合框架性能

时间:2014-02-06 14:51:47

标签: mongodb mongodb-query

我有一个拥有大约200K文档的mongo数据库。文档架构类似于

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

类可以是a,b或c。

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

什么查询有更好的表现?使用聚合框架进行查询或制作3个查询,每个查询计算不同类的文档?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你应该使用aggregation framework,原因有几个:

  • 它很快并且可以使用索引(特别是如果您在分组之前避免使用$ project)。
  • 这是对mongod的一次调用。简单,干净,您可以轻松监控它。
  • 如果您将来添加更多课程,则无需更改聚合链 。相反,如果您选择创建不同的count语句,则必须添加一个或多个语句,并且还必须更改应用程序代码以处理结果。