聚合查询性能和数据集的改进< 1M

时间:2013-02-15 02:52:07

标签: mongodb aggregation-framework

所以我使用的是MongoDB的聚合框架,并且正在对当前包含大约700K文档的集合执行查询。这是查询:

    db.logs.aggregate(
    {'$match' : { 'tag' : 'TAG-XYZ' }},
    {'$project' : {
      'tag' : '$common_tag.bId'
    }},
    {'$unwind' : '$tag'},
    {'$group' : {
      '_id' : '$tag',
      'total' : {'$sum' : 1}
    }},
    {'$sort':{'_id':1}},
    {'$skip':0},
    {'$limit':20}
    )

logs包含大约20个字段。 tag是一个平均10个标签的数组,common_tag只是一个嵌入式文档,它将某些分类标记与标记数组分开,以消除$unwind tag的初始使用1}}。我使用分页,因此skip的值是可变的。请注意,使用查询,因此没有固定的结果集。

问题是查询至少需要30秒才能执行。我担心的是数据集不断增长,它可能不支持我的实时(或接近实时)查询要求。有没有更好的方法来改进查询?

0 个答案:

没有答案