MongoDB $ сортировка с использованием агрегата очень медленная - PullRequest
0 голосов
/ 24 января 2019

Я создаю новое поле во время агрегации, чтобы отсортировать результаты по релевантности. К сожалению, метод $ 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);
    });

Если I $ сортировать по '_id', это действительно быстро, потому что поле _id проиндексировано. К сожалению, мое поле релевантностиScore создано в полете ...

Спасибо! : D

...