我正在汇总期间创建一个新字段,以便按相关性对结果进行排序。不幸的是,$ 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