使用聚合的MongoDB $ sort真的很慢

时间:2019-01-24 11:33:33

标签: mongodb mongodb-query aggregation-framework

我正在汇总期间创建一个新字段,以便按相关性对结果进行排序。不幸的是,$ sort方法只会减慢我的请求执行速度。您能解释一下如何使其更快吗?

这是我的代码:

MyClass.aggregate([
        {"$match":   query}
        ,{
            "$project" : Object.assign({
                //
                //  Build relevancy score
                //
                "relevancyScore": {blablabla...}
             }, otherFields)
        }
        ,{"$sort":{"relevancyScore":-1}} // This line slow down the request
        ,{"$skip":   currentPage * pageSize}
        ,{"$limit":  pageSize}
    ])
    .exec(function (err, res) {
        if (err) return console.log("error", err);
        resolve(res);
    });

如果我用'_id'对$ sort进行排序,那确实非常快,因为_id字段已建立索引。不幸的是,我的relevancyScore字段是在飞行中创建的。

谢谢! :D

0 个答案:

没有答案