我在查找和排序聚合方面存在性能问题。
在我需要排序之前,我确实限制然后查找并且它很快但是现在因为排序,我需要先放置查找,这会使查询增加30秒。
旧查询:
query.push({$skip: start});
query.push({$limit: length});
query.push({
$lookup: {
from: "campaigns",
localField: "campaign_id",
foreignField: "_id",
as: "campaign"
}
});

新查询:
query.push({
$lookup: {
from: "campaigns",
localField: "campaign_id",
foreignField: "_id",
as: "campaign"
}
});
query.push({$sort: {"campaign.name": order.dir === 'asc' ? 1 : -1}});
query.push({$skip: start});
query.push({$limit: length});

另外,由于广告系列字段来自查询,我无法将其编入索引。
您需要从查找中排序的场景的最佳方法是什么?