MongoDB:查询排序和分组非常慢

时间:2019-02-12 20:56:45

标签: mongodb

我的mongodb集群中有一个扁平的文档结构(共享了3个文档),文档数量约为4.5亿。

以下是文档的主要字段:

起源城市 目的地城市 出发日期 ReturnDateDate TotalPriceADT

我需要从特定的OriginCity(例如PAR)中找到每个DestinationCity未来6个月的所有最佳价格(TotalPriceADT)。

这是我的查询:

db.cache_00001.aggregate(
[
    { 
        $match: {
            "OriginCity": "PAR",
            $and: 
            [ 
                {DepartureDateDate: {$gt: new ISODate("2019-02-12T00:00:00.000Z")}},
                {DepartureDateDate: {$lt: new ISODate("2019-08-12T00:00:00.000Z")}},
            ]
        },
    },
    {
        "$sort": { "TotalPriceADT": 1}
    }, 
    {
        "$group": {
            "_id": 
            {
                "DestinationCity": "$DestinationCity",
            },
            "Propositions": 
            {
                "$first": "$$ROOT"
            }
        }
    }

],
{ 
    allowDiskUse: true,
})

查询有效,我得到正确的结果,问题是响应时间,非常慢。我用OriginCity&DepartureDateDate创建了一个复合索引。

您能告诉我如何改善查询以获得更好的响应时间吗?任何帮助将不胜感激。

杰罗姆(Jérome)

0 个答案:

没有答案