如何优化(提高速度)MongoDB查询?

时间:2014-07-13 15:27:05

标签: mongodb indexing database-schema aggregation-framework

我有一个像这样的MongoDB查询:

db.collection.aggregate([
{ "$group": {
    "_id": {
        "year": { "$year": "$utc_timestamp" },
        "month": { "$month": "$utc_timestamp" },
        "day": { "$dayOfMonth": "$utc_timestamp" },
    },
    "defects": {
        "$sum": { "$cond": [
            { "$eq": [ "$status", "defect" ] },
            1,
            0
        ]}
    },
    "totalCount": { "$sum": 1 }
}},
{ "$project": {
    "defect_rate": {
        "$cond": [
            { "$eq": [ "$defects", 0 ] },
            0,
            { "$divide": [ "$defects", "$totalCount" ] }
        ]
    }
}}

])

目前,它扫描了大约500,000份文件,需要6秒才能完成。

我希望记录数量能够进一步增加,因此需要对其进行优化。

我应采取哪些措施来提高此操作的速度?

我认为MongoDB会自动将_id编入索引。还有别的吗?

0 个答案:

没有答案