mongo中的慢速日期聚合查询

时间:2017-07-19 07:31:46

标签: mongodb mongoose

我有一个包含700万个文档的mongo集合,除了几个其他字段,每个文档都有一个“创建过程”。日期对象。我有一个索引' createdAt:1'在这个领域,它是在一个专门的mongo服务上举办的。

当我尝试按天分组时,查询变得非常慢。这是我的聚合查询:

{
    "$match": {
        "createdAt": {
            $gte:new Date(1472189560111)
        }
    }
}, 
{
    "$project": {
        "date": 
        {
            "$dateToString": {
                "format": "%Y-%m-%d",
                "date": "$createdAt"
            }
        },
        "count": 1
    }
}, 
{
    "$group": {
        "_id": "$date",
        "count": {
            "$sum": 1
        }
    }
}, 
{
    "$sort": {
        "_id": 1
    }
}, 
{
    "$project": {
        "date": "$_id",
        "count": 1,
        "_id": 0
    }
}

什么是提高绩效的好策略?我的聚合管道中有问题吗?我是否需要一个包含日期对象的字段,其中包含固定时间(如00:00)和该组的组?这似乎是一个基本的操作,我认为必须有一种mongodb原生方式。

0 个答案:

没有答案