在_id字段上使用$ sort进行慢速MongoDB聚合

时间:2017-12-01 20:41:39

标签: database mongodb sorting nosql aggregate

我有一个包含以下索引的记录集合:

{"_id":1}
{"car.make":1,"city":1,"car.mileage":1}

执行以下查询:

db.records.aggregate([
    {
        "$match":{
            "car.mileage":{"$in":[1000,2000,3000,4000]},
            "car.make":"Honda",
            "city":{"$in":["Miami","San Francisco","New York", "Chigaco", "Seattle", "Boston"]}
        }
    },
    {
        "$sort":{"_id":-1}
    }
])

没有$ sort子句的查询在几毫秒内完成,但添加$ sort子句需要大约2分钟。此查询应返回来自6m文档集合的大约40个文档。关于什么可能导致查询时间的巨大差异的任何线索?

经过额外测试后,即使creation_date未编入索引,此问题也会因creation_date之类的其他字段进行排序而消失。任何想法为什么_id字段的性能会比此聚合中未编制索引的creation_date字段差得多?

0 个答案:

没有答案