0

所以我正在使用 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只是一个嵌入文档,它将一些分类标签与标签数组分开,以消除使用. 我使用分页,所以值是可变的。请注意,使用了查询,因此没有一组固定结果。$unwindtagskip

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

4

0 回答 0